Условия сценария NPM не работают на Windows, но на Linux и Mac - PullRequest
0 голосов
/ 23 февраля 2019

Приведенный ниже скрипт NPM отлично работает в Linux и MacOS, но не работает в Windows.Я пытался найти какое-то решение, но не смог его найти!

"scripts": {
        "install-dependencies": "if [ ! -d node_modules ]; then npm install && npx npm-install-peers; fi",
},

Ошибка, которую я получаю:

> if [ -d node_modules ==false ]; then npm install && npx npm-install-peers; fi

-d was unexpected at this time.
npm ERR! code ELIFECYCLE
npm ERR! errno 1

Есть ли способ заставить это работать и в системах Windows?

1 Ответ

0 голосов
/ 23 февраля 2019

Командная строка Windows не эквивалентна bash в других системах.Вам нужно будет установить bash через что-то (например, bash, который поставляется с git для windows) и вызвать npm в этой оболочке.

Этот пакет также связан, но, опять же, не решит проблему:https://www.npmjs.com/package/cross-env

Продолжение комментариев.Node.js уже совместим везде, где должен выполняться этот код.Поэтому я рекомендую в команде сценария npm просто использовать узел для запуска сценария.

{
  "install-dependencies": " node -e 'process.exit(require(`fs`).existsSync(`node_modules`) ? 0 : 1)' && echo 'succ'"
}
...