Use Git Bash as cross-platform shell for Windows
cmd.exe
.%windir%
directory (Target encoding must be set in process.env.LANG
).npm install git-bash-shell --global
exit 0
Please restart your terminal after install. If Node version < 8, please install util.promisify
env
commandAdd env
as a prefix for command in terminal or npm package scripts
// package.json
"scripts": {
"show-shell": "env echo $SHELL",
}
require('git-bash-shell');
const spawnSync = require('cross-spawn').sync;
spawnSync('echo $(git --version)', {
shell: '/bin/sh',
stdio: 'inherit',
});
You can update config by command:
npm config set shell /bin/bash
npm config set script-shell /bin/sh
Or edit .npmrc file in directory of package.json
:
echo shell=/bin/bash>>.npmrc
echo script-shell=/bin/sh>>.npmrc
options.shell
set to true
for child process, process.env.SHELL
will be used, process.env.ComSpec
is used as a fallback if process.env.SHELL
is unavailable.cmd.exe