Я начал использовать lerna, чтобы иметь возможность устанавливать все модули узлов для всех подпакетов с помощью одной команды. На данный момент я не использую никаких других функций lerna, кроме lerna bootstrap. Мой lerna.json:

{
  "lerna": "3.22.0",
  "npmClient": "yarn",
  "packages": [
    "package-a",
    "package-b"
  ],
  "version": "1.0.0"
}

Поскольку оба ваших пакета являются частными для хранилища {{{x0}}, не можем найти их во время обновления библиотеки {{{x1}}. Также пакет {{{x2}} в настоящее время в настоящее время не содержится в значительной степени ненаправленным.

{
  "name": "test",
  "private": true,
  "version": "1.0.0",
  "scripts": {
    "postinstall": "lerna bootstrap"
  },
  "dependencies": {
    "lerna": "^3.22.1"
  }
}

Мой {{x0}} 's {{x1}}:

{
  "name": "package-a",
  "version": "1.0.0",
  "private": true,
  "dependencies": {
    "moment": "2.22.0"
  }
}

Мой {{x0}} 's {{x1}}:

{
  "name": "package-b",
  "version": "1.0.0",
  "private": true,
  "dependencies": {
    "package-a": "1.0.0",
    "moment": "2.22.0"
  }
}

Я хочу обновить moment в package-b. если я запустил yarn upgrade moment --latest в папке package-b, я получил следующую ошибку:

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.

Мой root {{x0}}:

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?

1
SergeyP 8 Окт 2020 в 18:48

1 ответ

Лучший ответ

Поскольку оба ваших пакета являются частными, репозиторий npm не может их найти во время обновления библиотеки moment. Также пакет lerna в настоящее время практически не поддерживается.

Существует обходной путь. Временно удалить строку {{x0}} из файла {{x1}}.

Как насчет использования JSON Extaver <

{
  "name": "package-b",
  "version": "1.0.0",
  "private": true,
  "dependencies": {
    "moment": "2.22.0"
  }
}

Теперь запустите:

cd package-b && yarn upgrade moment --latest && cd ..

Затем поставьте строку {{x0}} <{Strong> обратно на ваш файл {{x1}}.

1
a1300 15 Окт 2020 в 10:09