Как настроить так, чтобы NPM использовал оболочку bash в оболочке bash и оболочку windows в оболочке windows? - PullRequest
0 голосов
/ 24 октября 2019

Я управляю двумя файлами package.json;один содержит специфичные для Windows скрипты, а другой - для bash.

Я использовал этот хак для переключения между ними (я на устройстве с Windows):

    "shell:bash": "npm config set script-shell \"C:\\Program Files\\git\\bin\\bash.exe\"",
    "shell:windows": "npm config delete script-shell",

Я пытался использовать файл .npmrc в том же каталоге, что и файл package.json:

# .npmrc
script-shell = C:\Windows\System32\cmd.exe

Но это приводит к открытию нового приглашения cmd и ничего не запускается, поэтому скрипт "shell"хак. Вы можете себе представить, как трудно справиться с этим, но я не могу найти лучшего решения.

Я собираюсь попробовать использовать подсистему linux с собственным экземпляром node + npm, но я бы предпочел использовать оболочку bash для запуска файлов bash-совместимого package.json и оболочку Windows для запуска windows-совместимые файлы package.json.

Мне интересно, существует ли какое-либо соглашение для указания оболочки непосредственно в файле package.json? В любом случае это кажется лучшим местом для этого, поскольку ссылки на переменные в bash vs windows различны ($ npm_package_config_bash vs% npm_package_config_windows%).

"config": {
    "script-shell": "C:\\Windows\\System32\\cmd.exe"
}

Как сохранить npm в оболочке, из которой он запущен?

...