Рабочие области NPM 8 - установите один пакет как зависимость для другого пакета в монорепозитории.

Скажем, у меня есть следующая структура

      packages
  - @my-scope/packageA
  - @my-scope/packageB
  - @my-scope/packageC

Допустим, я хочу установить packageA как зависимость от packageB. С рабочими пространствами NPM 8 я бы подумал, что это должно сделать это: npm install @my-scope/packageA --workspace=@my-scope/packageB

Вместо этого я получаю следующее:

      npm ERR! 404 Not Found - GET https://registry.npmjs.org/@my-scope%2fpackageA - Not found 
npm ERR! 404
npm ERR! 404  '@my-scope/packageA@*' is not in this registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

Очевидно, он пытается получить его из реестра (и нет, я еще не опубликовал, не готов), но я хочу, чтобы он распознал, что эта зависимость присутствует в моем проекте как рабочая область. Кто-нибудь знает, почему это может происходить? Я не нашел много хороших ресурсов, объясняющих, как устанавливать зависимости изнутри вашего монорепозитория (я даже не знаю, как они называются ...).

2 ответа

Проблема, с которой вы столкнулись, была отмечена как ошибка: https://github.com/npm/cli/issues/3637 .

Он отмечен как исправленный.

Попробуйте установить последнюю версию npm(8.8.0 на момент написания этой статьи) и посмотрите, решена ли ваша проблема.

Похоже, [email protected] немного глючит. Я столкнулся с той же проблемой и попытался обновить npm до 8.3.2, что помогло. Однако при первом запуске произошел небольшой сбой, когда я увидел npm ERR! Cannot set properties of null (setting 'dev')Просто проигнорируйте и повторите команду. Убедитесь, что вы очистили все файлы node_modules и lock. Если нет, npm выкинет сообщение из вашего поста.

Другие вопросы по тегам