Я создаю модуль npm, который использует другой локальный модуль в качестве зависимости. Я включил его так:
{
"name": "moduleA",
"version": "1.0.0",
"main": "./lib/index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"moduleB": "./moduleB"
},
"author": "",
"license": "ISC",
"description": ""
}
Это прекрасно работает для локальной разработки, и я вижу, что moduleB установлен как пакет в 'node_modules' модуля A.
Однако эта структура ломается когда я устанавливаю модуль A глобально и пытаюсь запустить его (при подготовке к публикации).
Это мои шаги:
1) 'npm pack moduleA'
2 ) 'npm i -g moduleA-3.4.2.tgz'
3) 'moduleA' (работает в консоли GitBash)
На этом этапе я вижу следующая ошибка: Error: package.json not found in path
В модуле B есть пакет json - похоже, что в процессе установки возникло какое-то состязание.
Я пробовал:
1) Изменение зависимости на "moduleB": "file:./moduleB"
2) Указание установки модуля B в сценариях 'preinstall' и 'postinstall'
Различий в поведении не наблюдается. Цени любые советы или рекомендации!