#npm #npm-install #yarnpkg #node-gyp #npm-scripts
#npm #npm-install #yarnpkg #узел-gyp #npm-скрипты
Вопрос:
Я создаю пакет с некоторым собственным кодом, который будет установлен глобально, и теперь я вижу следующее поведение:
node-gyp rebuild
выполняется автоматически на локальномnpm install
и при установке самого пакета.- Когда я добавляю пользовательский
preinstall
скрипт вpackage.json
, он больше не вызывается ни приnpm install
, ни при глобальной установке пакета, поэтому он вообще не компилируется. - Однако, в случае
yarn install
node-gyp rebuild
, если все еще выполняется даже сpreinstall
перехватом. - Более того, если я добавляю
"preinstall": "node-gyp rebuild"
,yarn
запускает мой скрипт, а затемnode-gyp rebuild
снова вызывает, поэтому он компилируется дважды.
Интересно, есть ли какая-либо документация, описывающая это поведение? Потому что я ничего не нашел. Я даже не нашел явного упоминания, которое node-gyp rebuild
выполняется автоматически npm install
.
И как я могу использовать preinstall
перехват, чтобы мой модуль компилировался только один раз для npm
и yarn
?
npm
6.14.6
yarn
1.22.4