【发布时间】:2017-09-03 03:39:48
【问题描述】:
我目前正在尝试使用 Webpack 打包我的所有文件,但在处理多个文件夹和 .scss 文件时,我不知道如何继续。
我曾经使用 grunt 来完成这些任务,这是我的文件夹结构的一个示例:
functions
- _mixin.scss
- _function.scss
- [...]
variables
- _colors.scss
- _typo.scss
- [...]
ui
- _button.scss
- _grid.scss
- [...]
view
- _home.scss
- _about.scss
- [...]
使用Grunt,我将运行一个任务来生成一个名为main.scss 的文件,其中包含所有@import,例如:
@import 'function/_mixin.scss';
@import 'function/_function.scss';
@import 'variables/_colors.scss';
@import 'variables/_typo.scss';
[...]
目前我在我的.js 文件(与extract-text-webpack-plugin 一起使用)中指定一个导入来定义main.scss 文件,但是每个新的import 或旧的import 都需要添加/删除手动。有没有办法使用WebPack 自动执行此任务?
【问题讨论】:
-
如果您将 scss 文件导入到组件 js 中,则用户将需要生成的 css(即通过加载器)。如果您想将 scss 编译为一个文件而不将它们作为组件导入 webpack,则删除
@import scss语句并通过 npm 脚本或其他方式(grunt/node-sass 等)单独编译它们 -
@DenisTsoi 我只是在导入已编译的 css。我的意思是,比如我在
ui文件夹里面新建一个文件,我需要手动添加@import 'ui/newfile';在 main.scss 文件上。我曾经使用grunt sass-compile-imports自动完成。 -
hmmm - 我想这有点不常见(因为它假设您的工作流程确保样式与组件 js/html 依赖项相关联) - 因此自动添加所有这样的部分可能并不常见支持的。没有什么能阻止你说,使用 grunt 自动编译 scss 并要求
main.scss进入入口文件。 -
你可以使用 globbing 并尝试一下(还有一个 node-sass-globbing 包)npmjs.com/package/node-sass-globbing
-
npmjs.com/package/import-glob-loader!!! - 找到它