我目前正在webpack中使用css-loader,node-sass,sass-loader和style-loader包来编译我的sass文件,这是我的加载器当前的样子:
{
test: /\.scss$/,
loader: 'style!css!sass'
}
我想为我的样式使用这样的文件夹结构
styles
components/
main.sass
并且在main.sass中我想从组件文件夹导入所有东西,所以像 @import './components/**/*'
这样的东西可以通过webpack吗?
1 回答
您可以使用'~'为Sass导入添加前缀,以告诉Sass loade r在导入时使用webpack的
require()
分辨率 . 一旦webpack负责导入,您就会有一些灵活性 .如果您执行动态要求,例如
require('~./components/' + someVar + '.scss')
,webpack无法在构建时评估变量,它会捆绑该目录中的所有可能文件,并且require()
的实际分辨率在运行时发生(如果您存在,则可能导致运行时出错) . 如果那会给你所需要的东西(所有捆绑的文件)或者你仍然需要明确地require()
每个部分 - 但如果是这样的话,你可以很容易地遍历所有文件中的所有文件 . 目录并要求每一个 .更多关于如何leverage webpack's dynamic requires and loading context.