sass-loader バージョン: 4.1.1
node-sass バージョン: 4.1.1
ウェブパック: 1.14
ノードのバージョン: 7.3
Linux でのみ sass-loader が失敗するビルドが表示されます (Mac では問題ありません) が、毎回ではありません。これがsassの問題なのか、sass-loaderの問題なのか、完全にはわかりません。webpack の設定に関係しているようですが、何が悪いのかよくわかりません。Extract webpack text プラグインを使用していますが、それがなくても同じバグが発生します。
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)
私のルート レベルには、main.scss と alternate.scss の 2 つの sass ファイルがあります。
//main.scss
@import 'folder1/**/*.scss';
//alternate.scss
@import 'folder2/thing';
@import 'main.scss';
フォルダー 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'
},
エラーの原因となっているミックスインは次のようになります
@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;
}
}