Webpack 将 scss 编译为 css 并缩小

12 javascript css sass node.js webpack

我是 webpack 的新手,我正在努力如何将 scss 转换为 css 然后缩小。

文件结构

 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
Run Code Online (Sandbox Code Playgroud)

我正在像这样编译js

"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"
Run Code Online (Sandbox Code Playgroud)

我找到了类似的东西,sass-loader但不能让它工作。

webpack.config.js

module.exports = {
    module: {
        rules: [{
            test: /\.scss$/,
            use: [{
                loader: "sass-loader",
                options: {
                    minimize: true
                }
            }]
        }]
    }
};
Run Code Online (Sandbox Code Playgroud)

我不知道在哪里放置包含文件的路径以及在哪里放置输出路径。

我将不胜感激任何建议。

mad*_*low 8

如果您只是希望能够.scss从 Javascript 模块导入文件并将其直接应用于 DOM,您可以先按照此文档进行操作:

https://webpack.js.org/loaders/sass-loader/

然后添加Postcss到混合物中:

https://github.com/postcss/postcss-loader

太棒了;

npm install sass-loader node-sass style-loader css-loader postcss-loader cssnano --save-dev
Run Code Online (Sandbox Code Playgroud)
// 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
        ]
      }
    ]
  }
};
Run Code Online (Sandbox Code Playgroud)
// postcss.config.js
module.exports = {
  plugins: {
    'cssnano': {}
  }
};

Run Code Online (Sandbox Code Playgroud)

如果你想将编译后的CSS提取到一个单独的文件中,有:

https://github.com/webpack-contrib/mini-css-extract-plugin

尤其:

https://github.com/webpack-contrib/mini-css-extract-plugin#advanced-configuration-example