У меня довольно простой вопрос о перехватах предварительного скрипта.
В моем пакете. json, у меня есть пара команд, которые должны запускать один и тот же предскрипт. У меня уже есть способ сделать это, но мне интересно, есть ли более эффективная причина для этого.
Текущая реализация
{
"scripts": {
"myproject:run": "npm run custom.prescript && ng serve ...",
"myproject:prod": "npm run custom.prescript && ng serve -env=prod ...",
"myproject:build.devserver": "npm run custom.prescript && ng build -env=dev ...",
...
"myproject:build.prodserver": "npm run custom.prescript && ng build -env=prod ...",
"custom.prescript": "..."
}
}
Это работает все хорошо и модно, но я надеюсь, что есть более чистый, чтобы реализовать это. Поскольку у меня есть приблизительно 20 из этих сценариев, которые нуждаются в том же самом предварительном сценарии. Когда по какой-то причине мне нужно изменить команду, мне придется сделать это 20 раз для каждого проекта в репо (около 5 проектов).
Я знаю, что есть способ добавить предскрипты, создавая сценарий с тем же именем и префиксом «pre», чтобы убедиться, что он запускается до указанного сценария c, но, насколько я знаю, он не работает для нескольких сценариев.
Пример моей цели
{
"scripts": {
"myproject:run": "ng serve ...",
"myproject:prod": "ng serve -env=prod ...",
...
"secondproject:run": "ng serve ...",
"secondproject:prod": "ng serve -env=prod ...",
...
"premyproject:*": "...", // Runs before all 'myproject:*' scripts
"presecondproject:*": "..." // Runs before all 'secondproject:*' scripts
}
}
Есть ли более эффективный способ выполнить sh или я ДОЛЖЕН сделать это так, как я это уже делаю?
Спасибо за ваше время! :)