Я получил CssSyntaxError, когда обновил webpack 3 до 4. Я использую vue и webpack в frontside. Ошибка выглядит следующим образом.
[./node_modules/css-loader/dist/runtime/api.js] 2.35 KiB {mini-css-extract-plugin} [built]
ERROR in ./app/javascript/hoge.scss (./node_modules/css-loader/dist/cjs.js??ref--3-2!./app/javascript/hoge.scss)
Module build failed (from ./node_modules/css-loader/dist/cjs.js):
CssSyntaxError
(891:6) Unknown word
889 | background-color: #eeeeee;
890 | box-shadow: 0px 0px 5px #000;
> 891 | // line-height: 0;
| ^
892 | }
Для обновления webpack я пытаюсь использовать MiniCssExtractPlugin.обновленная версия npm, как показано ниже.
webpack latest 3.12.0 ❯ 4.30.0
webpack-dev-server latest 2.11.1 ❯ 3.3.1
vue latest 2.5.21 ❯ 2.6.10
vue-loader latest 14.2.3 ❯ 15.7.0
css-loader latest 1.0.1 ❯ 2.1.1
sass-loader@7.1.0
Мой webpack.config.js похож на это ниже.
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
plugins: [
new MiniCssExtractPlugin({
filename: '[name]-[hash].css'
}),
new VueLoaderPlugin()
],
module: {
rules: [
{
test: /\.(scss|sass)$/,
use: [
'vue-style-loader',
{
loader: MiniCssExtractPlugin.loader
},
{
loader: 'css-loader',
options: { modules: true }
},
{
loader: 'sass-loader'
}
]
},
{
test: /\.(css)$/,
use: [
'vue-style-loader',
{
loader: MiniCssExtractPlugin.loader
},
{
loader: 'css-loader',
options: { modules: true }
}
]
}
]
}
Есть ли неправильные настройки в webpack.config.js?