команда не найдена: если при запуске скрипта 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"
  }
Другие вопросы по тегам