Как получить скрипт оболочки с помощью скриптов npm? - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть скрипт в моем package.json:

{
  "scripts": {
    "start": "source run-nvm.sh && ..."
  }
}

Но работа source run-nvm.sh && ... отличается от yarn start (или npm run start).

Почему? Это создает подоболочку. Поэтому я не могу изменить среду исходной оболочки, я не могу export констант для нее или манипулировать состоянием nvm (я не могу изменить версию узла для родительской оболочки)

Итак, настоящий вопрос

Можно ли выполнить скрипт yarn / nvm, не создавая подоболочку? (и использовать текущую оболочку)

OR

Как получить скрипт оболочки с помощью скриптов npm?

В конце концов, вы можете попытаться изменить дискурс, спросив: «почему бы вам просто не source run-nvm.sh && yarn start», но я не хочу просто добавлять некоторые пользовательские сценарии и сложность, я хочу, чтобы он автоматически выполнялся yarn start / npm start (для автоматического изменения версии узла)

И настоящая проблема

В настоящее время он работает (скрипт изменяет версию узла и запускает приложение), но, поскольку он является подоболочкой, он не сохраняет состояние nvm. Таким образом, каждый yarn start изначально использует версию по умолчанию, затем меняет версию, затем запускает приложение, поэтому добавляет ~ 3-4 секунды для команды yarn start для изменения версии. Хотя он не должен устанавливать версию каждый раз, но должен устанавливать ее только один раз, в первый раз.

...