Ответ 1
Примечание. Работает только в среде оболочки, а не в Windows cmd. Вы должны использовать Bash на Windows, как Git Bash. Или попробуйте подсистему Linux, если вы используете win10.
Передача аргументов в скрипт
Чтобы передать аргументы в скрипт npm, вы должны предоставить их после --
для безопасности.
В вашем случае --
можно опустить. Они ведут себя одинаково:
npm run test -- 8080 production
npm run test 8080 production
Но когда аргументы содержат параметр (например, -p
), --
необходим, иначе npm будет их анализировать и рассматривать как параметр npm.
npm run test -- 8080 -p
Используйте позиционные параметры
Аргументы просто добавляются к скрипту, который нужно запустить. Ваш $1
$2
не будет решен. Команда, которую на самом деле выполняет npm:
node mytest.js $1 $2 | node_modules/tap-difflet/bin/tap-difflet "8080" "production"
Чтобы переменная положения работала в скрипте npm, оберните команду внутри функции оболочки:
"scripts": {
"test": "run(){ node mytest.js $1 $2 | node_modules/tap-difflet/bin/tap-difflet; }; run"
}
Или используйте инструмент scripty и поместите сценарий в отдельный файл.
package.json:
"scripts": {
"test": "scripty"
}
скрипты/тест:
#!/usr/bin/env sh
node mytest.js $1 $2 | node_modules/tap-difflet/bin/tap-difflet