Установка npm после npm, ссылка на локальный модуль вызывает ошибку: не найдено
В файле package.json модуля-A модуль-B указан как зависимость
"dependencies": {
"@mynamespace/module-b": "^0.0.1",
модуль B является локальным модулем и успешно связан с модулем A npm link
, Компиляция / запуск вещей все идет хорошо и хорошо.
Однако, когда я пытаюсь установить любой новый модуль в модуль с npm install something
или просто беги npm install
или же npm uninstall something
Я всегда получаю сообщение об ошибке от npm, что локальный модуль (который называется npm link-ed) не найден.
C:\web\module-b>npm install
npm ERR! code E404
npm ERR! 404 Not Found: @mynamespace/module-b@^0.0.1
Я проверил main
недвижимость в package.json
в обоих модулях, как предлагается здесь. Есть несколько похожих вопросов, но ни один, кажется, не является именно этой проблемой или решением, которое работает.
Прямо сейчас я вручную удаляю все упоминания связанных модулей из package.json, затем запускаю команды npm и затем добавляю их обратно в package.json.
Я использую нпм 6.1.0
Редактировать: Ах, это может иметь решающее значение? @mynamespace/module-b еще не существует в реестре NPM, только локально
1 ответ
Прямо сейчас я вручную удаляю все упоминания связанных модулей из package.json, затем запускаю команды npm и затем добавляю их обратно в package.json.
К сожалению, это единственный способ, которым это может работать. npm install
всегда будет искать в реестре npm, если вы укажете только версию (т.е. "@mynamespace/module-b": "^0.0.1",
или же "*"
) так работает npm install
переопределит то, что у вас есть в node_modules
вашего проекта с тем, что он находит в реестре npm (или выбросить 404 в этом случае).
Предполагая, что вы прочитали эту статью, нет возможности использовать npm link
метод, а также запустить npm install
, Для этого вам нужно будет явно указать путь к локальному пакету в вашем основном проекте package.json
(а затем измените его обратно, когда вы опубликовали свой пакет).
"зависимости": { "@mynamespace/module-b": "file:../../module-b", },
Надеюсь, это поможет.
Npm может сделать это автоматически, если вы добавите сценарий "install" в package.json, который запускается сразу после установки npm.
"scripts": {
"install": "npm link <your package>"
},
ОП здесь. Недавно я перешел на пряжу, которая очень совместима с npm. В Yarn есть такая вещь, как рабочие области, которая намного лучше справляется со всей проблемой связывания. С момента переключения не было никаких проблем, подобных описанным выше.
Удаление package-lock.json
а затем бег npm link <package_name><local_package_path>
исправлена ошибка.