Modern.js 提供了 upgrade 命令支持项目升级到最新的 Modern.js 版本。
在项目中执行 upgrade 命令:
npm run upgrade> modern upgrade
[INFO] [项目类型]: Web 应用
[INFO] [Modern.js 最新版本]: x.y.z
[INFO] 已更新 Modern.js 依赖至最新版本!可以看到项目 package.json 中的依赖已经更改到最新。
如果项目的 package.json 中没有声明 upgrade 命令,你可以执行 npx modern upgrade,效果是等价的。
Modern.js 所有的官方包目前都使用统一版本号进行发布。
根据官网 Release Note,开发者也可以手动将项目升级到想要的版本。
当升级时,需要对 Modern.js 官方提供的所有包做统一升级,而不是升级单个依赖。
在 Modern.js 项目中,我们推荐所有官方提供的依赖都使用固定版本号,不使用 ^ 或 ~ 进行范围声明。例如:
{
"dependencies": {
"@modern-js/app-tools": "x.y.z"
}
}这样可以确保依赖的版本是完全确定的,从而保证构建的一致性和可预测性。
当项目某个子依赖出现问题,而 Modern.js 无法立即更新时,可以使用包管理器锁定子依赖版本。
对于使用 pnpm 的项目,请在项目根目录的 package.json 中添加以下配置,然后重新执行 pnpm install:
{
"pnpm": {
"overrides": {
"package-name": "^1.0.0"
}
}
}对于使用 Yarn 的项目,请在项目根目录的 package.json 中添加以下配置,然后重新执行 yarn install:
{
"resolutions": {
"package-name": "^1.0.0"
}
}对于使用 Npm 的项目,请在项目根目录的 package.json 中添加以下配置,然后重新执行 npm install:
{
"overrides": {
"package-name": "^1.0.0"
}
}
对于 Monorepo 仓库,只能在项目根目录的 package.json 中锁定依赖版本,并且会影响 Monorepo 中的所有 package。