首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Rollup编译Sass文件

使用Rollup编译Sass文件
EN

Stack Overflow用户
提问于 2020-10-08 05:03:23
回答 1查看 6.7K关注 0票数 5

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

代码语言:javascript
复制
.
├── build
│   ├── css
│   ├── index.html
│   └── js
│       └── main.min.js
├── package.json
├── rollup.config.js
└── src
    ├── scripts
    │   └── main.js
    └── styles
        └── main.scss

src/scripts/main.js内容为import "styles/main.scss";

rollup.config.js

代码语言:javascript
复制
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,
    }),
  ],
};

在不创建css/style.css的情况下,使用此配置运行rollup -c将产生此输出。

代码语言:javascript
复制
> 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

我遗漏了什么?如何在配置per this issue中使用"sass“而不是"node-sass”?

在运行npm install rollup --global --verbosenpm install --save-dev rollup-plugin-scss --verbose之后,package.json如下所示。

由John Compile Sass files with Rollup编辑2021-08-06

代码语言:javascript
复制
npm install --save-dev rollup-plugin-scss@3 sass
代码语言:javascript
复制
{
  "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"
  }
}
EN

回答 1

Stack Overflow用户

发布于 2020-10-08 06:18:12

src/scripts/main.js中导入main.scss是不太正确的。

它必须是import "../styles/main.scss";而不是import "./styles/main.scss";

使用以下rollup.config.js将编译后的CSS文件保存到./build/css/style.css

代码语言:javascript
复制
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 --verbose中安装"sass“并将其添加到配置中,如下所示。

代码语言:javascript
复制
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"),
    }),
  ],
};
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64252283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档