У меня есть скрипт в моем 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
для изменения версии. Хотя он не должен устанавливать версию каждый раз, но должен устанавливать ее только один раз, в первый раз.