I have Webpack 5 (ver. 5.37.0) installed and want to compile a SASS file to a standalone CSS file. I get the following error:
$ npx webpack
asset index.js 555 KiB [compared for emit] (name: main)
runtime modules 1.25 KiB 6 modules
cacheable modules 532 KiB
./src/index.js 238 bytes [built] [code generated]
./node_modules/lodash/lodash.js 531 KiB [built] [code generated]
./src/style.scss 78 bytes [built] [code generated] [1 error]
ERROR in ./src/style.scss 1:11
Module parse failed: Unexpected token (1:11)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
> $body-color: red;
|
| body {
@ ./src/index.js 2:0-22
I understand that this means that no loader to handle the SCSS is input is present.
When I Google this error I find a lot of answers, but they don't work. I think they apply to older versions of Webpack.
Below is my entire webpack.config.js:
const path = require("path");
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const isDevelopment = process.env.NODE_ENV === 'development'
module.exports = {
entry: "./src/index.js",
mode: "development",
output: {
filename: "index.js",
path: path.resolve(__dirname, "dist")
},
module: {
rules: [
{
test: /\.module\.s(a|c)ss$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader",
{
loader: "sass-loader",
options: {
// Prefer `dart-sass`
implementation: require("sass"),
},
},
],
},
],
},
plugins: [
new MiniCssExtractPlugin({
filename: isDevelopment ? '[name].css' : '[name].[hash].css',
chunkFilename: isDevelopment ? '[id].css' : '[id].[hash].css'
})
],
};
Shall appreciate help debugging this.