【问题标题】:How optimize css/less by webpack?如何通过 webpack 优化 css/less?
【发布时间】:2017-07-27 22:36:08
【问题描述】:

我已经优化了js,但是如何优化css和less文件呢?

我不确定这段代码是做什么的(目前是我所拥有的):

{
    test: /\.less$/,
    loader: "style!css!autoprefixer!less"
},

我尝试使用: https://github.com/webpack-contrib/less-loader 但没有结果,实际上结果是构建时出错。

也许是我少了一个文件并且有很多不同的导入的原因。 我可以导入css、min.css、less。

@import "hud/styling/hud.less";
@import "~video.js/dist/video-js.min.css";
@import "canvas/spots.css";

我的主要目标应该是一个带有 css 的 js 文件(就像我目前拥有的那样),没有 cmets 和从 less 或 css 生成的空格。

【问题讨论】:

  • 你说的是optimization还是minification
  • 其实两者都有。我正在努力缩小我的应用程序的大小

标签: css optimization webpack less minify


【解决方案1】:

有一个封装叫optimize-css-assets-webpack-plugin。这是我使用的一个简单的 css webpack 设置

var webpack = require('webpack');
var path = require('path');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var OptimizeCssAssetsPlugin = require("optimize-css-assets-webpack-plugin");

  module: {
    rules: [{
      use: [{
      test: /\.(less|css)$/,
      use: ExtractTextPlugin.extract({
          fallback: 'style-loader',
          use: ['css-loader', 'postcss-loader', 'less-loader']
        })
    }]
  },
  plugins: [
    new ExtractTextPlugin("styles.css"),
    new OptimizeCssAssetsPlugin({
      assetNameRegExp: /\.optimize\.css$/g,
      cssProcessor: require('cssnano'),
      cssProcessorOptions: { discardComments: {removeAll: true } },
      canPrint: true
    }),
  ]

module.exports = config

这只是 css webpack 部分,不是完整的 webpack 配置

【讨论】:

  • 我无法设置它。 node_modules\extract-text-webpack-plugin\dist\lib\helpers.js:15 返回 chunk.isInitial() || chunk.parents.length === 0;
  • 看起来这是 webpack 3.0.0 的问题。 Github Issue
  • 尝试卸载 extract-text-webpack-plugin 并安装 extract-text-webpack-plugin@3.0.0-rc.2
  • 同样的TypeError: chunk.isInitial is not a function
猜你喜欢
  • 2019-01-28
  • 1970-01-01
  • 1970-01-01
  • 2012-11-09
  • 2011-03-31
  • 1970-01-01
  • 2014-10-13
  • 1970-01-01
  • 2018-03-01
相关资源
最近更新 更多