我有一个react / webpack-4应用程序,我正在尝试在Heroku上构建它。当我在我的机器上构建它时它完全正常,但在Heroku上它会吐出这些错误:
ERROR in ./src/styles/main.scss
Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
ModuleBuildError: Module build failed (from ./node_modules/sass loader/lib/loader.js):
@import 'components/dashboard';
^
File to import not found or unreadable: components/dashboard.
它并不总是在我的main.scss文件中的同一个@import语句中断,但它总是在其中一个上断开。
这是我的main.scss:
@import 'components/add-poster';
@import 'components/auth';
@import 'components/dashboard';
@import 'components/navigation';
所有名称都与我的文件匹配,并且正确地带有_前缀(即:_dashboard.scss)。
这是我的prod webpack构建文件:
module.exports = merge(base, {
mode: 'production',
devtool: 'source-map',
module: {
rules: [
{
use: [ MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader' ],
test: /\.scss$/
}
]
},
optimization: {
minimizer: [
new UglifyJsPlugin({ parallel: true, sourceMap: true }),
new OptimizeCssAssetsPlugin({})
]
},
plugins: [
new MiniCssExtractPlugin({
filename: 'style.css'
})
]
})
这让我疯了几个小时,任何帮助或见解将不胜感激。谢谢。
经过漫长而艰苦的重复格式化webpack的过程后,我开始删除导入以查看是否可以阻止错误。
删除仪表板组件后,构建开始起作用。我相信我的问题实际上是从导入一个没有任何内容的scss文件。不知道为什么那会破坏事情,但你去了。