Автоматический вызов «node-gyp rebuild» при «установке npm» и «установке yarn»

#npm #npm-install #yarnpkg #node-gyp #npm-scripts

#npm #npm-install #yarnpkg #узел-gyp #npm-скрипты

Вопрос:

Я создаю пакет с некоторым собственным кодом, который будет установлен глобально, и теперь я вижу следующее поведение:

  1. node-gyp rebuild выполняется автоматически на локальном npm install и при установке самого пакета.
  2. Когда я добавляю пользовательский preinstall скрипт в package.json , он больше не вызывается ни при npm install , ни при глобальной установке пакета, поэтому он вообще не компилируется.
  3. Однако, в случае yarn install node-gyp rebuild , если все еще выполняется даже с preinstall перехватом.
  4. Более того, если я добавляю "preinstall": "node-gyp rebuild" , yarn запускает мой скрипт, а затем node-gyp rebuild снова вызывает, поэтому он компилируется дважды.

Интересно, есть ли какая-либо документация, описывающая это поведение? Потому что я ничего не нашел. Я даже не нашел явного упоминания, которое node-gyp rebuild выполняется автоматически npm install .
И как я могу использовать preinstall перехват, чтобы мой модуль компилировался только один раз для npm и yarn ?

npm 6.14.6
yarn 1.22.4