返回

Vue 的 webpack 2.0 到 webpack 4.0 升级:utils.js 篇

前端

Vue 的 webpack 2.0 升级到 webpack 4.0 解决方案(utils 篇)

背景

随着项目的发展,我们遇到了新的需求,需要使用 webpack 4.0 中引入的新功能。由于我们项目最初使用 Vue CLI 脚手架搭建,因此 webpack 版本为 2.0。

升级步骤

1. 安装 webpack 4.0

npm install webpack@4.0.0 --save-dev

2. 移除旧的 webpack 配置

删除 webpack.config.js 文件。

3. 创建新的 webpack 配置

创建一个新的 webpack.config.js 文件,内容如下:

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

module.exports = {
  // 入口文件
  entry: './src/index.js',
  // 输出文件
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
  },
  // 模块加载器
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: 'babel-loader'
      },
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      }
    ]
  },
  // 插件
  plugins: [
    new webpack.ProvidePlugin({
      $: 'jquery',
      jQuery: 'jquery'
    })
  ]
};

4. 更新 package.json

package.json 文件中,将 webpackwebpack-cli 的版本更新为 4.0.0:

{
  "devDependencies": {
    "webpack": "^4.0.0",
    "webpack-cli": "^4.0.0"
  }
}

utils.js 升级

webpack 4.0 对 utils.js 文件做了一些更改,需要进行相应升级。

1. 移除 exports.HotModuleReplacementPlugin

webpack 4.0 中,HotModuleReplacementPlugin 已不再是一个单独的插件。现在它包含在 webpack.HotModuleReplacementPlugin 中。因此,可以从 utils.js 文件中删除以下代码:

exports.HotModuleReplacementPlugin = webpack.HotModuleReplacementPlugin;

2. 导出新的 HotModuleReplacementPlugin

添加以下代码以导出新的 HotModuleReplacementPlugin

exports.HotModuleReplacementPlugin = webpack.webpack.HotModuleReplacementPlugin;

注意事项

在升级过程中,您可能还会遇到以下问题:

  • webpack.optimize.CommonsChunkPlugin 已弃用 :使用 optimization.splitChunks 替换。
  • HtmlWebpackPlugin 不再支持传递 HTML 字符串 :改用 template 选项传递 HTML 模板。

总结

通过遵循这些步骤,您可以顺利将 Vue 项目中的 webpack 从 2.0 升级到 4.0。升级后,您将能够利用 webpack 4.0 中引入的新功能,从而增强项目的功能和性能。