Je suis nouveau avec webpack et j'ai du mal à convertir les scss en css puis à les réduire.
Structure des fichiers
????public
┣ ????dist
┃ ┣ ????css
┃ ┗ ????js
┃ ┃ ┗ ????adminMain.js
┣ ????src
┃ ┣ ????css
┃ ┃ ┃ ┣ ????admin.css
┃ ┃ ┃ ┣ ????admin.css.map
┃ ┃ ┃ ┣ ????admin.scss
┃ ┃ ┃ ┣ ????main.css
┃ ┃ ┃ ┣ ????main.css.map
┃ ┃ ┃ ┗ ????main.scss
┃ ┗ ????js
┃ ┃ ┗ ????adminMain.js
Je compile js comme ça
"dev": "webpack --mode development ./public/src/js/adminMain.js --output ./public/dist/js/adminMain.js",
"build": "webpack --mode production ./public/src/js/adminMain.js --output ./public/dist/js/adminMain.js"
J'ai trouvé quelque chose comme sass-loader
mais je ne peux pas le faire fonctionner.
webpack.config.js
module.exports = {
module: {
rules: [{
test: /\.scss$/,
use: [{
loader: "sass-loader",
options: {
minimize: true
}
}]
}]
}
};
je ne sais pas où mettre le chemin vers le fichier inclus et où mettre le chemin vers la sortie.
Je serai reconnaissant pour tout conseil.
Si vous voulez simplement pouvoir importer .scss
les fichiers de vos modules Javascript et les appliquer directement au DOM, vous pouvez simplement suivre cette documentation en premier:
https://webpack.js.org/loaders/sass-loader/
puis ajoutez Postcss
au mix:
https://github.com/postcss/postcss-loader
tldr;
npm install sass-loader node-sass style-loader css-loader postcss-loader cssnano --save-dev
// webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.scss$/,
use: [
'style-loader', // creates style nodes from JS strings
{
loader: 'css-loader', // translates CSS into CommonJS
options: {
importLoaders: 1
}
},
'postcss-loader', // post process the compiled CSS
'sass-loader' // compiles Sass to CSS, using Node Sass by default
]
}
]
}
};
// postcss.config.js
module.exports = {
plugins: {
'cssnano': {}
}
};
Si vous souhaitez extraire le CSS compilé dans un fichier séparé, il y a:
https://github.com/webpack-contrib/mini-css-extract-plugin
Surtout:
https://github.com/webpack-contrib/mini-css-extract-plugin#advanced-configuration-example