首页 文章

webpack允许导入所有sass文件?即@import 'components/**/*'

提问于
浏览
0

我目前正在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 回答

  • 0

    您可以使用'~'为Sass导入添加前缀,以告诉Sass loade r在导入时使用webpack的 require() 分辨率 . 一旦webpack负责导入,您就会有一些灵活性 .

    如果您执行动态要求,例如 require('~./components/' + someVar + '.scss') ,webpack无法在构建时评估变量,它会捆绑该目录中的所有可能文件,并且 require() 的实际分辨率在运行时发生(如果您存在,则可能导致运行时出错) . 如果那会给你所需要的东西(所有捆绑的文件)或者你仍然需要明确地 require() 每个部分 - 但如果是这样的话,你可以很容易地遍历所有文件中的所有文件 . 目录并要求每一个 .

    更多关于如何leverage webpack's dynamic requires and loading context.

相关问题