NPM: как добавить хук «после установки», который не запускается для потребителей пакетов?

#javascript #node.js #npm #package.json

#javascript #node.js #npm #package.json

Вопрос:

Я пишу модуль NPM.

Я хотел бы автоматизировать некоторые задачи после каждого npm install при локальной разработке модуля.

Однако я не хочу, чтобы эти шаги выполнялись, когда потребители моей библиотеки выполняют npm install , и я не хочу, чтобы эти шаги выполнялись после каждого npm pack и npm publish , которые я выполняю во время разработки (так что это исключает использование скриптов prepublish и prepare ).

Какой самый простой способ добиться этого?

(Я рассмотрел: (а) опубликовать отдельный package.json install скрипт без скрипта, (б) создать ./install.sh в корне проекта, который пользователи вызывают вместо npm install … но это своего рода отстой.)

Ответ №1:

install:local Скрипт здесь будет запускаться только после npm install локального запуска (т. Е. Не Тогда, Когда потребители устанавливают ваш пакет).

package.json:

 {
  ...,
  "scripts": {
    "prepare": "case "$npm_config_argv" in *"\"install\""*|*"\"ci\""*) npm run install:local ;; esac",
    "install:local": "echo 'npm install' was run directly in the project, and not by a library consumer!",
  }
}
  

Комментарии:

1. У меня не работает в Windows.