Почему npm устанавливает пакеты в разные каталоги? - PullRequest
0 голосов
/ 30 мая 2018

У меня есть несколько проектов, которые используют общую базовую кодовую базу.Это ядро ​​находится в подкаталоге и определяет его собственные зависимости npm.В проектах я хотел бы установить специфичные для проекта пакеты npm, а также зависимости ядра, которые выглядят так:

. / Package.json

{
  "dependencies": {
    "core": "file:./core",
    "es6-promise": "~4.2.2",
    "url-search-params-polyfill": "^2.0.3"
  }
}

Когда я запускаю npm install, все пакеты из ./package.json и ./core/package.json установлены, но происходят две странные вещи:

  1. Некоторые пакеты устанавливаются в ./core/node_modules вместо ./node_modules

  2. Работает только при новой установке.Если package-lock.json уже существует, выдается следующая ошибка:

    npm ERR! path /proj/core/node_modules/jest-cli/node_modules/node-notifier
    npm ERR! code ENOENT
    npm ERR! errno -2
    npm ERR! syscall rename
    npm ERR! enoent ENOENT: no such file or directory, rename '/proj/core/node_modules/jest-cli/node_modules/node-notifier' -> '/proj/core/node_modules/jest-cli/node_modules/.node-notifier.DELETE'
    npm ERR! enoent This is related to npm not being able to find a file.
    

Удаление файла блокировки помогает, но является плохим решением.Я запускаю следующие версии: узел 8.11, npm 5.6.0

Я хотел бы знать, почему npm ведет себя так, устанавливая в двух разных каталогах.Думаю, понимание этого решит и другого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...