如何更新 Midway
什么时候要更新 Midway
一般来说,在下面的情况下,你可能需要更新:
- 1、Midway 发了新版本之后,你希望用到新功能的时候
- 2、你安装了一个新的组件且带有 lock 文件的时候
- 3、出现方法找不到的错误的时候
- ... 等等
比如出现下面错误的时候
1、一般是装了组件的新包,但是老的 @midwayjs/core 未包含该方法从而报错。

2、一般原因为 mock 依赖的 @midwayjs/core 版本没这个方法,说明版本不对,可能是错误引用了版本,也可能是版本太低

3、新装组件的时候,我们发现某个包的版本实例不止一个

更新注意事项
危险
midway 项目的依赖使用 lerna 发布,请不要:
- 1、单独升级某个 @midwayjs/* 的包
- 2、将 package.json 中的版本号移除 ^ 符号
检查包版本异常
你可以使用下面的命令在项目根目录执行进行检查。
# 社区用户
$ npx midway-version
# 内部用户
$ tnpx @ali/midway-version
如果项目为 pnpm 安装的依赖,请使用下面的命令。
# 社区用户
$ pnpx midway-version
# 内部用户
$ pnpx @ali/midway-version
使用工具更新版本
你可以使用下面的命令在项目根目录执行进行更新提示。
# 社区用户
$ npx midway-version -u
# 内部用户
$ tnpx @ali/midway-version -u
如果项目为 pnpm 安装的依赖,请使用下面的命令。
# 社区用户
$ pnpx midway-version -u
# 内部用户
$ pnpx @ali/midway-version -u
如果你希望将更新写入到 package.json 中,请使用下面的命令。
# 社区用户
$ npx midway-version -u -w
# 内部用户
$ tnpx @ali/midway-version -u -w
如果项目为 pnpm 安装的依赖,请使用下面的命令。
# 社区用户
$ pnpx midway-version -u -w
# 内部用户
$ pnpx @ali/midway-version -u -w
提示
更新的版本会写入 package.json 和 package-lock.json,并需要重新安装依赖。
手动更新版本
普通项目更新
普通使用 npm/yarn 的项目,升级请按照下面的流程
- 1、删除 package-lock.json 或者 yarn.lock
- 2、彻底删除 node_modules(比如 rm -rf node_modules)
- 3、重新安装依赖( npm install 或者 yarn)
我们不保证使用其他工具、cli 单独升级包的效果。
lerna 项目更新
使用 lerna 开发项目,由于有 hoist 模式的存在,升级请按照下面的流程(以 lerna3 为例)
- 1、清理子包的 node_modules,比如(lerna clean --yes)
- 2、删除主包的 node_modules(比如 rm -rf node_modules)
- 3、删除 package-lock.json 或者 yarn.lock
- 4、重新安装依赖( npm install && lerna bootstrap)
我们不保证使用其他工具、cli 单独升级包的效果。