команда не найдена: если при запуске скрипта package.json с Yarn v3 (berry)
Я обновил пряжу наших проектов с версии 1.22 до версии 3.1.1. Мы используем рабочие области, поэтому у меня есть этот плагин. Все кажется прекрасным; другие сценарии работают, но при попытке использовать команды оболочки я получаю эту ошибку:
> yarn run start
command not found: if
command not found: then
command not found: fi
Вот скрипт из нашего package.json:
"scripts": {
"build": "yarn run --top-level tsc",
"lint": "yarn run --top-level eslint './src/**/*.{ts,js}'",
"start": "if [[ $BLAH ]]; then yarn generateEnvFile; fi && yarn copyEnterpriseWsdl && node dist/index.js",
"generateEnvFile": "node blah.js > .env",
"copyEnterpriseWsdl": "cp blah blah"
}
2 ответа
В итоге я нашел больше обходного пути, чем выяснить, в чем проблема:
"scripts": {
// ...
"start": "/bin/sh ./start-prod.sh"
}
Где в этом сценарии есть то, что мне действительно нужно для запуска. ♂️
Если вы все еще хотите сохранить код встроенным, вы можете использовать следующее:
"scripts": {
// ...
"start": "/bin/sh -c 'if [[ $BLAH ]]; then yarn generateEnvFile; fi' && yarn copyEnterpriseWsdl && node dist/index.js"
}