Осторожно! Эта опция --ignore-scriptsотключает ВСЕ скрипты - даже из ваших зависимостей. Если вашим зависимостям нужно запускать скрипты, например, для установки некоторых двоичных файлов, они могут сломаться / быть неполными.
delbertooo
7
Итак, есть ли способ установить node_modules (и все их сценарии), но игнорировать только сценарии основного пакета?
Derrick
4
Не только это, но --ignore-scriptsили связанный с ним параметр конфигурации (который я установил глобально) также будет означать, что npm run startничего не будет делать и сообщать об успехе. Поразите.
Эш Берлин-Тейлор
22
Вы также можете включить настройки в файле конфигурации npm.
npm config set ignore-scripts true
Примечание. Это отключит сценарии для всех пакетов NPM.
Обратите внимание, что он также отключает возможность выполнения вручную npm run …- он просто ничего не будет делать без какого-либо предупреждения.
CodeManX
7
Я хотел отключить сценарий postinstall для своего проекта, но хотел, чтобы все сценарии зависимостей моего проекта запускались, когда я это делаю npm install. Вот что я в итоге сделал.
Создать скрипт ./scripts/skip.js
if (process.env.SKIP_BUILD) {
process.exit(0);
} else {
process.exit(1);
}
Чтобы сделать это для вашей собственной библиотеки, я рекомендую что-нибудь простое, например:
#!/usr/bin/env bash
## this is your postinstall.sh script:
set -e;
if [ "$your_pkg_skip_postinstall" == "yes" ]; then
echo "skipping your package's postinstall routine.";
exit 0;
fi
Благодарность! Это отлично работает, если вы просто пытаетесь отключить свой собственный сценарий, но не ВСЕ сценарии во всех зависимостях.
Брайан Нейслер
1
@BrianNeisler, вы всегда рады помочь другим людям. Кстати, я думаю, что двойные скобки [[]] могут быть лучше одинарных скобок для большинства случаев использования, но не уверен.
Ответы:
Невозможно отключить только
postinstall
скрипты. Однако вы можете отключить все скрипты, используя:Как упоминал delbertooo в комментариях, это также отключает скрипты зависимостей.
источник
--ignore-scripts
отключает ВСЕ скрипты - даже из ваших зависимостей. Если вашим зависимостям нужно запускать скрипты, например, для установки некоторых двоичных файлов, они могут сломаться / быть неполными.--ignore-scripts
или связанный с ним параметр конфигурации (который я установил глобально) также будет означать, чтоnpm run start
ничего не будет делать и сообщать об успехе. Поразите.Вы также можете включить настройки в файле конфигурации npm.
npm config set ignore-scripts true
Примечание. Это отключит сценарии для всех пакетов NPM.
источник
npm run …
- он просто ничего не будет делать без какого-либо предупреждения.Я хотел отключить сценарий postinstall для своего проекта, но хотел, чтобы все сценарии зависимостей моего проекта запускались, когда я это делаю
npm install
. Вот что я в итоге сделал../scripts/skip.js
if (process.env.SKIP_BUILD) { process.exit(0); } else { process.exit(1); }
"scripts": { ... "postinstall": "node ./scripts/skip.js || npm run build", ... }
теперь просто установите переменную среды SKIP_BUILD = 1, чтобы предотвратить сборку вашего пакета, и ваши зависимости будут построены нормально
SKIP_BUILD=1 npm install
источник
Чтобы сделать это для вашей собственной библиотеки, я рекомендую что-нибудь простое, например:
#!/usr/bin/env bash ## this is your postinstall.sh script: set -e; if [ "$your_pkg_skip_postinstall" == "yes" ]; then echo "skipping your package's postinstall routine."; exit 0; fi
затем выполните установку npm с помощью:
your_pkg_skip_postinstall="yes" npm install
источник