Я недавно обновился с Webpack 3 до 4. Теперь выдает ошибку:
Ошибка синтаксического анализа модуля: непредвиденный символ '@' Вам может потребоваться соответствующий загрузчик для обработки этого типа файлов.|@import './scss/variables.scss';||* {@ ./src/index.js 1: 0-22
В моем файле styles.scss я делаю следующее:
@import 'scss/variables.scss';
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: Arial, Helvetica, sans-serif;
}
В моем индексе.js файл, я делаю только следующее:
import './style.scss';
В моем webpack.dev.js все, что я изменил, было добавлением режима: 'development':
const StyleLintPlugin = require('stylelint-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const Dotenv = require('dotenv-webpack');
module.exports = {
mode: 'development',
entry: './src/index.js',
output: {
filename: 'public/bundle.js'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: ['babel-loader', 'eslint-loader']
},
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract(['css-loader', 'sass-loader'])
}
]
},
plugins: [
new StyleLintPlugin({
configFile: '.stylelintrc',
context: 'src',
files: '**/*.scss',
failOnError: false,
quiet: false,
syntax: 'scss'
}),
new ExtractTextPlugin('public/style.css'),
new Dotenv()
]
};
Iне знаю, какое изменение вызвало эта ошибка с Webpack 3 на 4.
Проблема, с которой я столкнулся, очень похожа на проблему, опубликованную здесь: Ошибка разбора модуля Webpack 4: неожиданный символ '@'(1: 0)
Я прошел через все вопросы, связанные со стековым потоком, и ни один из них не помог.
Вот соответствующие зависимости в моем package.json:
"babel-loader": "^7.1.4",
"css-loader": "^0.28.11",
"eslint-loader": "^1.9.0",
"extract-text-webpack-plugin": "^4.0.0-beta.0",
"node-sass": "^4.9.0",
"sass-loader": "^6.0.7",
"style-loader": "^0.20.3",
"stylelint-webpack-plugin": "^0.10.5",
"uglifyjs-webpack-plugin": "^1.2.5",
"webpack": "^4.8.3",
"webpack-cli": "^2.1.4"
Вот соответствующие скрипты в моем файле package.json, для справки в комментариях:
"scripts": {
"watch": "./node_modules/.bin/webpack --mode development --watch --progress",
"build": "./node_modules/.bin/webpack --mode production"
},