lerna import всегда возвращает EDESTDIR - PullRequest
2 голосов
/ 17 февраля 2020

У меня есть уже существующий проект, который я хотел бы импортировать в мою существующую lerna monorepo, которая использует рабочие области пряжи.

Команда (ы):

У меня есть попытался выполнить все следующие команды. Ошибка упорно остается неизменной. Кроме того, у petstore есть пакет. json file и git repo.

lerna import ./petstore --dest="./packages/"
lerna import ./petstore --dest="./packages/api/"

ERROR:

lerna notice cli v3.20.2
lerna ERR! EDESTDIR --dest does not match with the package directories: packages/**

Также lerna import ../petstore в результате создается packages/**/petstore, который не является ожидаемым результатом.

Я надеюсь, что он состоит из всего соответствующего кода. У нас есть пакеты поддержки под packages/shared и apis под packages/api.

lerna. json

{
  "packages": [
    "packages/**/*"
  ],
  "npmClient": "yarn",
  "useWorkspaces": true,
  "private": true,
  "version": "0.0.1",
  "lerna": "2.11.0"
}

package. json

{
  "name": "root",
  "devDependencies": {
    "lerna": "^2.11.0"
  },
  "workspaces": [
    "packages/**/*"
  ],
}

Resources Я просмотрел:

1 Ответ

1 голос
/ 20 февраля 2020

Лерна читает пакеты с ключа workspaces на пакете. json вместо packages на lerna. json.

Лерна читает все значения с /* и считает их каталоги пакетов. Он интерпретирует ** буквально и не анализирует его как подстановочный знак и расширяет его.

Решение состоит в том, чтобы удалить packages из lerna.json:

{
  "npmClient": "yarn",
  "useWorkspaces": true,
  "private": true,
  "version": "0.0.1",
  "lerna": "2.11.0"
}

и обновить рабочие пространства путь для явной ссылки на любые подкаталоги в ваших пакетах, если ваш monorepo структурирован таким образом:

{
  "name": "root",
  "devDependencies": {
    "lerna": "^2.11.0"
  },
  "workspaces": [
    "packages/a/*",
    "packages/api/*"
  ],
}

Чтобы импортировать проект pet-store в packages/api в monorepo из каталога вне моно репо:

lerna import ../pet-store --dest="./packages/api/"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...