当前位置: 首页 > 知识库问答 >
问题:

使用Rollup编译Sass文件

上官高逸
2023-03-14

给出了以下简单的项目结构。

.
├── build
│   ├── css
│   ├── index.html
│   └── js
│       └── main.min.js
├── package.json
├── rollup.config.js
└── src
    ├── scripts
    │   └── main.js
    └── styles
        └── main.scss

src/scripts/main。js内容是导入“style/main.scss”

卷起来。配置。js

import scss from "rollup-plugin-scss";

export default {
  input: "./src/scripts/main.js",
  output: {
    file: "./build/js/main.min.js",
    format: "esm",
  },
  plugins: [
    scss({
      include: ["/**/*.css", "/**/*.scss", "/**/*.sass"],
      output: "css/style.css",
      failOnError: true,
    }),
  ],
};

使用此配置运行rollup-c会导致此输出,而无需创建css/style.css

> rollup -c
./src/scripts/main.js → ./build/js/main.min.js...
(!) Unresolved dependencies
https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency
styles/main.scss (imported by src/scripts/main.js)
created ./build/js/main.min.js in 7ms

我错过了什么?如何在本期配置中使用“sass”而不是“node-sass”?

运行npm install rollup--global--verbosenpm install--save dev rollup plugin scss--verbose包后。json看起来像这样。

编辑2021-08-06 by John使用汇总编译Sass文件

npm install --save-dev rollup-plugin-scss@3 sass
{
  "name": "example",
  "version": "1.0.0",
  "main": "build/js/main.min.js",
  "dependencies": {},
  "devDependencies": {
    "rollup": "^2.28.2",
    "rollup-plugin-scss": "^2.6.1"
  },
  "scripts": {
    "build": "rollup -c"
  }
}

共有1个答案

水品
2023-03-14

导入main。scssinsrc/scripts/main。js不太正确。

它必须是import./styles/main.scss” 而不是导入“/styles/main.scss”

使用以下汇总。配置。js编译后的CSS文件保存到/build/css/style。css

import scss from "rollup-plugin-scss";

export default {
  input: "./src/scripts/main.js",
  output: {
    file: "./build/js/main.min.js",
    format: "esm",
  },
  plugins: [
    scss({
      output: "./build/css/style.css",
      failOnError: true,
    }),
  ],
};

使用“sass”而不是“node-sass”使用npm install--save-dev sass--verose安装“sass”并将其添加到配置中,就像这样工作。

import scss from "rollup-plugin-scss";

export default {
  input: "./src/scripts/main.js",
  output: {
    file: "./build/js/main.min.js",
    format: "esm",
  },
  plugins: [
    scss({
      output: "./build/css/style.css",
      failOnError: true,
      runtime: require("sass"),
    }),
  ],
};

 类似资料:
  • 无论是 node-sass 还是 ruby-sass 使用 npm 安装都非常的慢,甚至会装不上。及其不利于团队协作。建议使用 less 作为 css 预处理器。 如果因为 less 不支持自定义函数选择用 sass 可以使用 less-plugin-functions 让 less 支持自定义函数。 gulp-sass 本章使用的是 ruby-sass 如果你不方便安装 ruby 或编译速度慢,

  • 我在使用汇总编译Vue脚本时遇到问题。我得到的错误是 [!] 错误:节点_modules/vue/dist/vue未导出“openBlock”。运行时。esm。js,由src/js/components/TestButton导入。vue?vue app.js TestButton.vue 卷起来。配置。js 我尝试了很多不同的东西,但似乎没有任何帮助。但是,如果我在配置中的vuePlugin之前加

  • 我已经通过webpack简单裸露了VueJs的新安装,试图将SASS设置为CSS。文档说它已经准备好开发了,但是webpack只适用于SCSS,而不适用于SASS。有人能分享一下如何使用吗? 此外,我还遵循了教程https://vue-loader.vuejs.org/guide/pre-processors.html#sass-vs scss,但没有结果 Webpack文件 错误 未能编译。 .

  • 我有一个Laravel项目,我试图使用npm run watch将Sass编译成CSS,但在终端日志中出现以下错误:[webpack cli]无效的配置对象。已使用与API架构不匹配的配置对象初始化Webpack。 配置。条目['/js/app']不应包含项目“D:\xampp\htdocs\laravel\epood5\resources\js\app”。两次- npm错误!此运行的完整日志可在

  • 我们在框架中有多个子模块,scss文件夹有多个可能的路径,例如: fW/submodule/_wwW/css/foo/bar/scss/ fW/submodule/subsubmodule/_www/css/foo/bar/fooagain/scss/ fw/submodule/views/tpl/library/libraryname/default/css/foo/bar/scss/ 等等。

  • 我有一个原型文件,用协议2语法编写。我正在使用协议3编译器编译这个原型文件。虽然它成功构建,但它在运行时显示以下错误。有人能帮我吗? [libprotobuf FATAL google/protobuf/extension\u set.cc:102]x.y.z.a类型的多个扩展注册,字段号200。在抛出“google::protobuf::FatalException”what():type“x.