У меня есть пакет npm со структурой, подобной этой:
./
./backend
./package.json
package.json
Таким образом, в основном два модуля npm в одной папке, один из которых является дочерним по отношению к другой, с точки зрения структуры файлов.
Способ установки заключается в том, что я помещаю постустановочный скрипт в родительский пакет. Json:
"postinstall": "cd backend && npm install && cd .."
Что произойдет ТОЛЬКО, если я установлю его глобально: сначала выдается несколько предупреждений о том, что пакеты в основном не установлены. Как это:
npm WARN enoent ENOENT: no such file or directory, open '/usr/lib/node_modules/inschpektor/backend/node_modules/trim-newlines/package.json'
Они появляются для всех зависимостей в ./backend/package.json
.
Я уже запускаю установку с флагом --unsafe-perm
:
npm install -g inschpektor --unsafe-perm
, который устанавливает родительский package.json, содержащий скрипт postinstall.
Последнее сообщение об ошибке в журнале, которое я получаю, это:
npm ERR! path /usr/lib/node_modules/inschpektor/backend/node_modules/ansi-regex/package.json
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '/usr/lib/node_modules/inschpektor/backend/node_modules/ansi-regex/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
npm ERR! /home/codepleb/.npm/_logs/2019-01-02T01_52_46_911Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 254
npm ERR! inschpektor@0.9.1 postinstall: `cd backend && npm install && cd ..`
npm ERR! Exit status 254
npm ERR!
npm ERR! Failed at the inschpektor@0.9.1 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/codepleb/.npm/_logs/2019-01-02T01_52_47_511Z-debug.log
Что я делаю не так? Или вы, возможно, видите недостатки в том, как я настраиваю вещи?
Вот ссылка для получения git-репо, если вы хотите продолжить ее анализ: https://github.com/codepleb/inschpektor