zoukankan      html  css  js  c++  java
  • webpack升级到4.x 不完全指南

    最近在团队推行ts,顺便将webpack做了升级,升级到最新的4.X版本,下面记录一些迁移指南。

    VueLoader

    VueLoaderPlugin,显示的引用:

    const VueLoaderPlugin = require('vue-loader/lib/plugin')
    
    module.exports = {
      module: {
        rules: [
          // ... other rules
          {
            test: /.vue$/,
            loader: 'vue-loader'
          }
        ]
      },
      plugins: [
        // make sure to include the plugin!
        new VueLoaderPlugin()
      ]
    }
    

    less问题

    less需要单独的配置规则,注意一定要加上vue-style-loader,否则样式不生效

    {
      module: {
        rules: [
          // ... other rules
          {
            test: /.less$/,
            use: [
              'vue-style-loader',
              'css-loader',
              'less-loader'
            ]
          }
        ]
      }
    }
    

    ts 支持

    加上ts-loader

     {
                test: /.tsx?$/,
                loader: 'ts-loader',
                exclude: /node_modules/,
                options: {
                    appendTsSuffixTo: [/.vue$/],
                }
            },
    

    UglifyJsPlugin

    UglifyJsPlugin 配置位置发生了变化,放到optimization里,如果不想开启minimize,可以配置minimize:false,开启优化的话,可以配置minimizer:

    // webpack.optimize.UglifyJsPlugin
        optimization: {
            // minimize: false,
            minimizer: [
                new UglifyJsPlugin({
                    cache: true,
                    parallel: true,
                    uglifyOptions: {
                        compress: false
                    },
                    sourceMap: false
                })
            ]
        }
    

    CopyWebpackPlugin

    配置发生了变化:

            // copy custom static assets
            new CopyWebpackPlugin({
                patterns: [{
                    from: path.resolve(__dirname, '../static'),
                    to: config.dev.assetsSubDirectory
                }]
            })
    

    ExtractTextPlugin

    之前:

     new ExtractTextPlugin({
          filename: utils.assetsPath('css/[name].[contenthash].css'),
          allChunks: true,
        }),
    

    contenthash已不能使用,换成hash即可

        new ExtractTextPlugin({
          filename: utils.assetsPath('css/[name].[hash].css'),
          allChunks: true,
        }),
    
  • 相关阅读:
    LeetCode#237 Delete Node in a Linked List
    数据库概念
    请基于 TCP/IP 五层网络模型描述下当我们在浏览器请求 https ://pp.io 站点时,发生了哪些事情
    高并发大流量
    mysql关于索引
    php基础——会话控制
    php基础——运算符知识
    php基础——常量及数据类型考察
    引用变量和cow机制
    关系基本特性的运算封闭性
  • 原文地址:https://www.cnblogs.com/xiaoqi/p/webpack-upgrade-to-4.html
Copyright © 2011-2022 走看看