Skip to content

Instantly share code, notes, and snippets.

@sebastiandg7
Last active January 15, 2019 23:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sebastiandg7/2e1e6726a39e2d9bbc0d1e5e17cdb91f to your computer and use it in GitHub Desktop.
Save sebastiandg7/2e1e6726a39e2d9bbc0d1e5e17cdb91f to your computer and use it in GitHub Desktop.
npm script fix for Windows shared node installation with WSL
#!/bin/sh
(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix
basedir=`dirname "$0"`
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if grep -iq 'Microsoft\|WSL' /proc/version; then
if [ -x /bin/wslpath ]; then
# On recent WSL builds, use wslpath to transform the path
basedir=$(wslpath -m "$basedir")
else
# If running under older WSL, inform the user to install
# Windows 10 version 1803 or above.
# The next line can be uncommented (and comment the next 2 ones) if the Windows mount path is in /mnt or /
# basedir=$(echo $basedir | sed -r 's,^\/(mnt\/)?([a-zA-Z])\/,\2:\/,g')
echo "Error: Windows version not supported, you must use Windows 10 version 1803 or above"
exit 1
fi
fi
NODE_EXE="$basedir/node.exe"
if ! [ -x "$NODE_EXE" ]; then
NODE_EXE=node
fi
NPM_CLI_JS="$basedir/node_modules/npm/bin/npm-cli.js"
case `uname` in
*MINGW*)
NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g`
NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js"
if [ -f "$NPM_PREFIX_NPM_CLI_JS" ]; then
NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS"
fi
;;
*CYGWIN*)
NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g`
NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js"
if [ -f "$NPM_PREFIX_NPM_CLI_JS" ]; then
NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS"
fi
;;
esac
"$NODE_EXE" "$NPM_CLI_JS" "$@"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment