如何仅导入一次带有Webpack的_global.scss文件,而不是导入每个.scss文件?

如何仅导入一次带有Webpack的_global.scss文件,而不是导入每个.scss文件?,webpack,sass-loader,Webpack,Sass Loader,试图找到一种方法,在我的webpack构建中导入一次u.global.scss文件,而不是在每个.scss文件中导入它(每个组件都有一个scss文件) 到目前为止,我找到的唯一可能的解决办法是使用行李装载机,但我无法让它工作 my webpack.config中的加载程序如下所示: 装载机:[{ 测试:/\.scss$/,, 加载器:“样式加载器!原始加载器!sass加载器” +“!baggage?”+path.resolve(uuu dirname,”./src/_config/_globa

试图找到一种方法,在我的webpack构建中导入一次u.global.scss文件,而不是在每个.scss文件中导入它(每个组件都有一个scss文件)

到目前为止,我找到的唯一可能的解决办法是使用行李装载机,但我无法让它工作

my webpack.config中的加载程序如下所示:

装载机:[{
测试:/\.scss$/,,
加载器:“样式加载器!原始加载器!sass加载器”
+“!baggage?”+path.resolve(uuu dirname,”./src/_config/_global.scss))

}]
您可以创建一个自定义加载程序,该加载程序将在所有scss文件中插入@import语句

下面是一个webpack.config.js文件:

var path = require('path');

module.exports = {
  entry: './src/app.js',
  output: {
    filename: 'build/bundle.js'
  },
  module: {
    loaders: [
      {
        test: /\.scss$/,
        exclude: /node_modules/,
        loader: 'style!css!sass!' + path.resolve('loaders/inject-global-scss') 
      }
    ]
  }
}
此代码段假定您有一个loaders文件夹,其中有一个inject-global-scss.js文件

以下是此文件的内容:

module.exports = function(source) {
  this.cacheable();
  return `@import './src/_config/_global';
    ${source}`;
}
现在,我假设您在src/\u config文件夹中有一个_global.scss文件。
由于字符串模板语法,您正在使用node 5+。

很抱歉,我完全误解了您的问题。。。你不应该有这样的东西:loader:‘风格!css!谢谢!这正是我要找的。在它里面有一个inject-global-scss.js文件——我必须将文件名改为index.js才能正常工作。@vintem您知道一种方法来做到这一点,并且仍然能够使用内置的sass方法,如darken()?