Webpack 3,提取文本插件未解析sass加载程序includePaths



我在一个旧项目上使用以下设置:

webpack@3.0.0
extract-text-webpack-plugin@2.1.2

我现在正在尝试一个新项目,所以已经升级到:

webpack@3.8.1
extract-text-webpack-plugin@3.0.1.

Webpack配置完全相同,但现在我遇到了错误。

我使用的是node波旁威士忌,我想让它在我的所有条目中都可用,而不是每次都导入它。

我有一个SCSS文件:stylesheets/tools/mixins/bourbon.css,它(应该)只是导入波旁威士忌:@import 'bourbon';

然后,我将使用sass资源加载器使其(以及其他一些混合插件)可用于所有模块(请参阅下面的配置)。

webpack配置: { test: /.scss$/, use: ExtractTextPlugin.extract({ use: [ ... { loader: "sass-loader", options: { sourceMap: true, includePaths: require('bourbon').includePaths } }, { loader: 'sass-resources-loader', options: { resources: [ './frontend/stylesheets/settings/*.scss', './frontend/stylesheets/tools/**/*.scss' ] }, }, ] }) },

然而,SCSS文件中的import语句没有解析为node_modules,它试图引用自己,因此我得到了以下错误: Module build failed: @import 'bourbon'; ^ An @import loop has been found:

节点波旁威士忌的includePath似乎被忽略了?

更新:

我现在已经设法通过直接引用波旁威士忌来解决问题:@import '~bourbon/app/assets/stylesheets/_bourbon';

虽然不理想,但它确实起到了作用。

有趣的是,当我在一个没有在sass资源加载器中声明的文件中包含波旁@import 'bourbon';时,它就起作用了。也许ExtractTextPlugin没有将includePath从sass加载程序传递到sass资源加载程序中引用的模块。

我不是肯定的,但我认为includepaths必须是一个数组,即使只有一个条目。

此外,bourbonbourbon-neat是官方页码,所以你可能会更好地使用它们,而不是node-bourbon

编辑以澄清:

您需要输入以下选项→

options: {
sourceMap: true,
includePaths: [require('bourbon').includePaths]
}

相关内容

  • 没有找到相关文章