#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.