Webpack sass 构建在 linux 上间歇性失败,仅模块构建失败:(@include someMixin() 堆栈级别太深)

Webpack sass building fails intermittently on linux only Module build failed: (@include someMixin() Stack level too deep)

sass-加载器版本:4.1.1

节点-sass版本:4.1.1

网络包:1.14

节点版本:7.3

我看到我使用 sass-loader 的构建仅在 linux 上失败(在 mac 上没问题),但也不是每次都失败。我不太确定这是 sass 问题还是 sass-loader 问题。它似乎与 webpack 配置有关,但我真的看不出有什么问题。我正在使用 extract webpack 文本插件,但没有它也会发生同样的错误。

这似乎与2个入口点引用同一组sass有关。

Child extract-text-webpack-plugin:
    + 1 hidden modules

ERROR in ./~/css-loader!./~/postcss-loader!./~/sass-loader!./src/scss/alternate.scss
Module build failed: 
      @include media-query-phone() {
              ^
      Stack level too deep
      in /data/jenkins/workspace/build-branch/src/scss/elements/_grid.scss (line 88, column 16)
Child extract-text-webpack-plugin:
    + 1 hidden modules

ERROR in ./~/css-loader!./~/postcss-loader!./~/sass-loader!./src/scss/main.scss
Module build failed: 
      @include media-query-desktop() {
              ^
      Stack level too deep
      in /data/workspace/build-branch/src/scss/elements/_grid.scss (line 64, column 16)

在我的根级别,我有 2 个 sass 文件,main.scss 和 alternate.scss

//main.scss
@import 'folder1/**/*.scss';

//alternate.scss
@import 'folder2/thing';
@import 'main.scss';

none 文件夹 1 或 2 中的内容有任何导入。

我的 webpack 配置入口点是这样的

entry: {
  //doesn't happen if either of these is left out
  'main': './src/main.js', //the js file imports main.scss
  'alternate-sass': './src/scss/alternate.scss'
},

导致错误的 mixins 如下所示

@mixin media-query-phone() {
  @media screen and (min-width: $phone-min-width) and (max-width: $tablet-min-width - 1) {
    @content;
  }
}

//used by
@include media-query-phone() {
   .blah{
     padding: 0;
   }
}

node-sass 4.3 修复了这个问题。