简体   繁体   English

Postcss-loader不会缩小css输出

[英]Postcss-loader not minifying css output

I'm using webpack and postcss-loader to autoprefix and minify my CSS, before loading it into css-loader to use css-modules. 我正在使用webpack和postcss-loader来自动修复和缩小我的CSS,然后将其加载到css-loader中以使用css-modules。 I'm having trouble with minifying CSS. 我在缩小CSS方面遇到了麻烦。 Examining the emitted .js file by webpack shows the CSS isn't minified with cssnano (because I can still see whitespace characters). 通过webpack检查发出的.js文件显示CSS没有用cssnano缩小(因为我仍然可以看到空格字符)。 What am I doing wrong? 我究竟做错了什么?

Some relevant configuration files: 一些相关的配置文件:

webpack.config.js: webpack.config.js:

const path = require('path');
const webpack = require('webpack');

var postCompileScript = require('./postCompile');

module.exports = {
  entry: './src/popup.js',
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader"
        }
      },
      {
        test: /\.css$/,
        use: [
          'style-loader',
          { 
            loader: 'css-loader', 
            options: { 
              modules: true,
              localIdentName: '[local]__[hash:base64:6]',
              importLoaders: 1,
              minimize: true
            }
          },
          {
            loader: 'postcss-loader',
            options: {
              ident: 'postcss',
              plugins: [
                require('autoprefixer')({})
              ],
              minimize: true
            }
          }
        ]
      },
      {
        test: /\.(png|jpg|gif)$/i,
        use: [
          {
            loader: 'url-loader',
            options: {
              limit: 8192
            }
          }
        ]
      }
    ]
  },
  output: {
    filename: 'main.js',
    path: path.resolve(__dirname, 'dist')
  },
  mode: 'production',
  resolve: {
    alias: {
      "react": "preact-compat",
      "react-dom": "preact-compat"
    },
    extensions: ['.js', '.jsx']
  }
};

postcss.config.js : postcss.config.js

module.exports = {
  parser: 'sugarss',
  plugins: {
    'postcss-import': {},
    'postcss-preset-env': {},
    'cssnano': {}
  }
}

package.json 的package.json

{
  "name": "REDACTED",
  "version": "1.0.0",
  "description": "",
  "private": true,
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack --config ./webpack.config.js",
    "deploy": "node ftp"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "autoprefixer": "^9.1.2",
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "babel-preset-env": "^1.7.0",
    "babel-preset-react": "^6.24.1",
    "css-loader": "^1.0.0",
    "cssnano": "^4.1.0",
    "ftp": "^0.3.10",
    "post-compile-webpack-plugin": "^0.1.2",
    "postcss-loader": "^3.0.0",
    "prepend-file": "^1.3.1",
    "style-loader": "^0.22.1",
    "uglifyjs-webpack-plugin": "^1.3.0",
    "url-loader": "^1.1.1",
    "webpack": "^4.16.5",
    "webpack-bundle-analyzer": "^2.13.1",
    "webpack-cli": "^3.1.0"
  },
  "dependencies": {
    "iframe-resizer": "^3.6.1",
    "js-cookie": "^2.2.0",
    "npm": "^6.4.0",
    "preact": "^8.3.1",
    "preact-compat": "^3.18.3",
    "react": "^16.4.2",
    "react-dom": "^16.4.2",
    "react-iframe-resizer-super": "^0.2.0"
  }
}

Thanks in advance. 提前致谢。

For any future readers: I solved my problem by just adding the cssnano plugin to the postcss-loader in the config. 对于任何未来的读者:我通过在配置中将cssnano插件添加到postcss-loader来解决我的问题。 Thus the css rule is as follows (webpack.config.js): 因此css规则如下(webpack.config.js):

{
  test: /\.css$/,
  use: [
    'style-loader',
    { 
      loader: 'css-loader', 
      options: { 
        modules: true,
        localIdentName: '[local]__[hash:base64:6]',
        importLoaders: 1,
        minimize: true
      }
    },
    {
      loader: 'postcss-loader',
      options: {
        ident: 'postcss',
        plugins: [
          require('autoprefixer')({}),
          require('cssnano')({ preset: 'default' })
        ],
        minimize: true
      }
    }
  ]
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在webpack + postcss-loader中观察导入的css文件 - Watch imported css files in webpack + postcss-loader Webpack:为什么'style-loader!css-loader!postcss-loader'不处理导入的文件? - Webpack: Why 'style-loader!css-loader!postcss-loader' doesn't process imported files? Webpack 4,postcss-loader和autoprefixer插件 - Webpack 4, postcss-loader and autoprefixer plugin 带有postcss-loader的Webpack无法识别precss - Webpack with postcss-loader not recognizing precss 将 mini-css-extract-plugin 与 postcss-loader 一起使用时,模块构建失败 - Module build failed when using mini-css-extract-plugin with postcss-loader for less ./src/index.scss (./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-5-1.?/node_modules/postcss-loader/src?.postcss!./node_modules / - ./src/index.scss (./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-5-1!./node_modules/postcss-loader/src??postcss!./node_modules/ 添加 postcss-loader 后显示“未知单词”错误 - "Unknown word" error showing after adding postcss-loader 模块构建失败(来自 ./node_modules/postcss-loader/src/index.js):SyntaxError (2:14) 未知词 - Module build failed (from ./node_modules/postcss-loader/src/index.js): SyntaxError (2:14) Unknown word css-loader破坏了postcss-cssnext变量 - css-loader breaking postcss-cssnext variables 带webpack的postcss加载器 - postcss loader with webpack
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM