如何升级lerna子包的node模块
How to upgrade node module of the lerna's subpackage
我开始使用 lerna 以便能够使用单个命令为所有子包安装所有节点模块。
目前我不使用任何其他 lerna 功能,除了 lerna bootstrap
。
我的 lerna.json
:
{
"lerna": "3.22.0",
"npmClient": "yarn",
"packages": [
"package-a",
"package-b"
],
"version": "1.0.0"
}
我的根package.json
:
{
"name": "test",
"private": true,
"version": "1.0.0",
"scripts": {
"postinstall": "lerna bootstrap"
},
"dependencies": {
"lerna": "^3.22.1"
}
}
我的package-a
的package.json
:
{
"name": "package-a",
"version": "1.0.0",
"private": true,
"dependencies": {
"moment": "2.22.0"
}
}
我的 package-b
的 package.json
:
{
"name": "package-b",
"version": "1.0.0",
"private": true,
"dependencies": {
"package-a": "1.0.0",
"moment": "2.22.0"
}
}
我想在 package-b
中升级 moment
。
如果我在 package-b
文件夹中 运行 yarn upgrade moment --latest
我收到以下错误:
yarn upgrade v1.22.5
[1/4] Resolving packages...
error Received malformed response from registry for "package-a". The registry may be down.
info Visit https://yarnpkg.com/en/docs/cli/upgrade for documentation about this command.
如果我在根文件夹中 运行 npx lerna --scope package-b exec -- "yarn upgrade moment --latest"
出现以下错误:
lerna notice cli v3.22.1
lerna notice filter including "package-b"
lerna info filter [ 'package-b' ]
lerna info Executing command in 1 package: "yarn upgrade moment --latest"
yarn upgrade v1.22.5
[1/4] Resolving packages...
error Received malformed response from registry for "package-a". The registry may be down.
info Visit https://yarnpkg.com/en/docs/cli/upgrade for documentation about this command.
lerna ERR! yarn upgrade moment --latest exited 1 in 'package-b'
lerna ERR! yarn upgrade moment --latest exited 1 in 'package-b'
lerna子包中的node模块应该如何正确升级?
因为您的两个包都是私有的,所以 npm
存储库在 moment
库升级期间找不到它们。此外,lerna
软件包目前基本无人维护。
有一个解决方法。从您的 package-b.json
文件中暂时删除 "package-a": "1.0.0",
行。
已更新 package-b/package.json
文件:
{
"name": "package-b",
"version": "1.0.0",
"private": true,
"dependencies": {
"moment": "2.22.0"
}
}
现在运行:
cd package-b && yarn upgrade moment --latest && cd ..
然后将 "package-a": "1.0.0",
行 返回 到您的 package-b.json
文件。
我开始使用 lerna 以便能够使用单个命令为所有子包安装所有节点模块。
目前我不使用任何其他 lerna 功能,除了 lerna bootstrap
。
我的 lerna.json
:
{
"lerna": "3.22.0",
"npmClient": "yarn",
"packages": [
"package-a",
"package-b"
],
"version": "1.0.0"
}
我的根package.json
:
{
"name": "test",
"private": true,
"version": "1.0.0",
"scripts": {
"postinstall": "lerna bootstrap"
},
"dependencies": {
"lerna": "^3.22.1"
}
}
我的package-a
的package.json
:
{
"name": "package-a",
"version": "1.0.0",
"private": true,
"dependencies": {
"moment": "2.22.0"
}
}
我的 package-b
的 package.json
:
{
"name": "package-b",
"version": "1.0.0",
"private": true,
"dependencies": {
"package-a": "1.0.0",
"moment": "2.22.0"
}
}
我想在 package-b
中升级 moment
。
如果我在 package-b
文件夹中 运行 yarn upgrade moment --latest
我收到以下错误:
yarn upgrade v1.22.5
[1/4] Resolving packages...
error Received malformed response from registry for "package-a". The registry may be down.
info Visit https://yarnpkg.com/en/docs/cli/upgrade for documentation about this command.
如果我在根文件夹中 运行 npx lerna --scope package-b exec -- "yarn upgrade moment --latest"
出现以下错误:
lerna notice cli v3.22.1
lerna notice filter including "package-b"
lerna info filter [ 'package-b' ]
lerna info Executing command in 1 package: "yarn upgrade moment --latest"
yarn upgrade v1.22.5
[1/4] Resolving packages...
error Received malformed response from registry for "package-a". The registry may be down.
info Visit https://yarnpkg.com/en/docs/cli/upgrade for documentation about this command.
lerna ERR! yarn upgrade moment --latest exited 1 in 'package-b'
lerna ERR! yarn upgrade moment --latest exited 1 in 'package-b'
lerna子包中的node模块应该如何正确升级?
因为您的两个包都是私有的,所以 npm
存储库在 moment
库升级期间找不到它们。此外,lerna
软件包目前基本无人维护。
有一个解决方法。从您的 package-b.json
文件中暂时删除 "package-a": "1.0.0",
行。
已更新 package-b/package.json
文件:
{
"name": "package-b",
"version": "1.0.0",
"private": true,
"dependencies": {
"moment": "2.22.0"
}
}
现在运行:
cd package-b && yarn upgrade moment --latest && cd ..
然后将 "package-a": "1.0.0",
行 返回 到您的 package-b.json
文件。