Reputation: 1844
How to use sass loader with webpack 4? I read a lot about this and most sites recomended to use ExtractTextPlugin, but ExtractTextPlugin doesn't work with webpack 4.
I wrote following webpack.config.js:
const path = require('path');
const ClosureCompilerPlugin = require('webpack-closure-compiler');
module.exports = {
module: {
rules: [
{
test: /\.scss$/,
use: [{
loader: "style-loader"
}, {
loader: "css-loader"
}, {
loader: "sass-loader"
}]
}
]
},
plugins: [
new ClosureCompilerPlugin({
compiler: {
language_in: 'ECMASCRIPT6',
language_out: 'ECMASCRIPT3',
compilation_level: 'ADVANCED'
},
concurrency: 3,
})
]
};
Output .js file works well, but my .scss didn't compile to css. I'm tried to add entry points:
entry: {
stylesheet: path.resolve('src', 'scss/styles.scss'),
main: path.resolve('src', 'index.js')
}
and after this my styles.scss compiles to stylesheet.js, but i not to .css.
Upvotes: 12
Views: 41229
Reputation: 129
You can use [email protected] with Webpack 4, if that fits your requirements.
Version 11.0.0 of sass-loader introduced this minimum webpack 5 supported version breaking change. You can see a changelog at https://openbase.com/js/sass-loader/versions
Upvotes: 6
Reputation: 642
The beta works well with [email protected]
npm install extract-text-webpack-plugin@next
Upvotes: 0
Reputation: 1381
You can use mini-css-extract-plugin.
https://github.com/webpack-contrib/mini-css-extract-plugin
I used the same plugin for extracting SASS to CSS using webpack 4 and it's working like a charm.
Upvotes: 16
Reputation: 3020
webpack
4 is not yet capable of outputting standalone *.css
file on its own. To get a separate *.css
file, you need to use the extract-text-webpack-plugin
to pull out all the CSS into its own entry chunk. This is a good tutorial.
Upvotes: 11