npm install @mpxjs/cli@3.x -g
v3兼容了v2的所有配置,如果没有特殊修改,则不需要进行配置迁移。
config/devServer.js迁移到mpx.config.js下的devServerconfig/mpxPlugin.conf.js迁移到mpx.config.js下的pluginOptions.mpx.pluginconfig/mpxLoader.conf.js迁移到mpx.config.js下的pluginOptions.mpx.loader
// mpx.config.js
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
pluginOptions: {
mpx: {
plugin: {
// 这里等同于`@mpxjs/webpack-plugin`的参数
srcMode: 'wx',
},
loader: {
// 这里等同于`mpx-loader`参数
}
}
},
devServer: {
// dev服务配置
}
})// mpx.config.js
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
chainWebpack(config){
config.plugin('newPlugin').use(newPlugin, [params])
// 使用mpx inspect 可以根据注释来查看插件命名
config.plugin('mpx-webpack-plugin').tap(args => newArgs)
},
// 或者也可以通过configureWebpack配置,这里返回的配置会通过webpack-merge合并到内部配置中
configureWebpack(){
return {
plugins: [
new Plugin()
]
}
}
})v3版本相对于v2版本的目录结构更加清晰。
- 移除了
config/build的配置目录,将其统一到了插件配置当中,可以通过mpx.config.js修改。 index.html移动到public目录下。- 增加
jsconfig.json,让类型提示更加友好。
v3版本相对于v2版本的整体架构相差较大,v3版本主要基于vue-cli架构,主要有以下优势。
v3版本的配置依靠插件化,将v2版本的文件配置整合到了各个自定义插件中。
- vue-cli-plugin-mpx-eslint eslint配置
- vue-cli-plugin-mpx-mp 小程序构建配置以及命令
- vue-cli-plugin-mpx-plugin-mode 插件配置
- vue-cli-plugin-mpx-typescript ts配置
- vue-cli-plugin-mpx-web web构建配置以及命令
除此之外,也可以使用统一的mpx.config.js来自定义配置,或者将配置抽离到插件当中,来进行统一的管理。
v3版本的模板也可以通过插件进行自定义生成,同时不依赖于github,在国内网络下不会有生成模板时网络错误的问题。
v3版本可以通过mpx inspect来直接调试相关配置,可以更直观的发现配置错误。
使用mpx invoke/mpx add/mpx upgrade来管理插件,可以更细粒度的控制相关配置的更新。
插件1.0和2.0在构建流程上做了很大的改动,所以如果需要从1.0 升级到 2.0,需要做以下改动
- npm uninstall @mpxjs/vue-cli-plugin-mpx-mp @mpxjs/vue-cli-plugin-mpx-web
- 修改
package.json里的build:mp为build,serve:mp为serve
之后正常运行命令即可
