javascript - Webpack 将 scss 编译为 css 并缩小

标签 javascript css node.js webpack sass

我是 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

我是这样编译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"

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

webpack.config.js

module.exports = {
    module: {
        rules: [{
            test: /\.scss$/,
            use: [{
                loader: "sass-loader",
                options: {
                    minimize: true
                }
            }]
        }]
    }
};

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

如有任何建议,我将不胜感激。

最佳答案

如果您只是想从您的 Javascript 模块中导入 .scss 文件并将其直接应用于 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
// 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': {}
  }
};

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

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

特别是:

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

关于javascript - Webpack 将 scss 编译为 css 并缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57239787/

相关文章:

node.js - 通过传递我的简单例份验证中间件来表达

javascript - Mongoose .populate() 未填充

node.js - 从 Sequelize 获取最近发送消息的用户列表

javascript - Tic Tac Toe-无限循环-如何提示第二步?

javascript - 使用值数组重复函数

javascript - 当点击 sub li 时,点击功能被调用两次。我该如何解决?

jquery - IE 8 .png 问题

javascript - 对 ckeditor 的 contents.css 文件所做的更改未加载

javascript - Element.matches 选择器限制

html - CSS 宽度 100% 在 2 2'' 显示器上无法正常工作