Skip to content

Instantly share code, notes, and snippets.

@kidchenko
Forked from giggio/npm.cmd
Created July 27, 2016 01:51
Show Gist options
  • Save kidchenko/a4553e9ce8fba670e1d6f7234cb47d97 to your computer and use it in GitHub Desktop.
Save kidchenko/a4553e9ce8fba670e1d6f7234cb47d97 to your computer and use it in GitHub Desktop.
Alternative npm.cmd for VS201X node tools integration. Caches npm ls -g result until a different npm command is issued.
@ECHO OFF
SETLOCAL
SET "NODE_EXE=%~dp0\node.exe"
IF NOT EXIST "%NODE_EXE%" (
SET "NODE_EXE=node"
)
SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)
SET "OUTDIR=%~dp0"
IF "%1 %2"=="ls -g" (
IF NOT EXIST "%OUTDIR%\npm.ls-g.cache" (
"%NODE_EXE%" "%NPM_CLI_JS%" %* >>"%OUTDIR%\npm.ls-g.cache"
)
FOR /F "tokens=2 delims=:" %%F IN ('CALL CHCP') DO (
SET "LS-GCHCP=%%F"
)
CHCP 65001>nul
TYPE "%OUTDIR%\npm.ls-g.cache"
CHCP %LS-GCHCP%>nul
) ELSE (
ERASE "%OUTDIR%\npm.ls-g.cache" 2> nul
"%NODE_EXE%" "%NPM_CLI_JS%" %*
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment