get-installed-path icon indicating copy to clipboard operation
get-installed-path copied to clipboard

Fail on windows

Open keenwon opened this issue 7 years ago • 7 comments

  • node: v8.9.0
  • npm: v5.5.1
  • os: windows 7
  • nvm: 1.1.7
const { getInstalledPathSync } = require('get-installed-path')
console.log(getInstalledPathSync('npm'))
C:\Users\keenwon\Desktop\yyyyy\node_modules\get-installed-path\dist\index.js:164
    throw new Error(msg);
    ^

Error: get-installed-path: module not found "npm" in path C:\Users\keenwon\AppData\Roaming\npm\node_modules\npm
    at getInstalledPathSync (C:\Users\keenwon\Desktop\yyyyy\node_modules\get-installed-path\dist\index.js:164:11)
    at Object.<anonymous> (C:\Users\keenwon\Desktop\yyyyy\index.js:2:13)
    at Module._compile (module.js:635:30)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)
    at Function.Module._load (module.js:489:3)
    at Function.Module.runMain (module.js:676:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3

more info:

$ which npm
/c/Program Files/nodejs/npm

$ npm config -g get prefix
C:\Program Files\nodejs

keenwon avatar Sep 12 '18 11:09 keenwon

Thanks for the report. Strange.. i'll check.

tunnckoCore avatar Sep 12 '18 21:09 tunnckoCore

What's your APPDATA env?

Prefix is built on APPDATA joining with 'npm' then this prefix is joined with node_modules.

@jonschlinkert @doowb any ideas?

tunnckoCore avatar Sep 12 '18 21:09 tunnckoCore

// index.js
const { getInstalledPathSync } = require('get-installed-path')

console.log(process.env);
console.log();
console.log(getInstalledPathSync('npm'))
keenwon@laptop-win7 MINGW64 ~/Desktop/get-installed-path-test
$ node -v
v8.9.0

keenwon@laptop-win7 MINGW64 ~/Desktop/get-installed-path-test
$ npm -v
5.5.1

keenwon@laptop-win7 MINGW64 ~/Desktop/get-installed-path-test
$ nvm version
1.1.7

keenwon@laptop-win7 MINGW64 ~/Desktop/get-installed-path-test
$ node index.js
{ ACLOCAL_PATH: '/mingw64/share/aclocal:/usr/share/aclocal',
  ALLUSERSPROFILE: 'C:\\ProgramData',
  APPDATA: 'C:\\Users\\keenwon\\AppData\\Roaming',
  COMMONPROGRAMFILES: 'C:\\Program Files\\Common Files',
  'CommonProgramFiles(x86)': 'C:\\Program Files (x86)\\Common Files',
  CommonProgramW6432: 'C:\\Program Files\\Common Files',
  COMPUTERNAME: 'LAPTOP-WIN7',
  COMSPEC: 'C:\\Windows\\system32\\cmd.exe',
  CONFIG_SITE: '/mingw64/etc/config.site',
  DISPLAY: 'needs-to-be-defined',
  EXEPATH: 'C:\\Program Files\\Git',
  FP_NO_HOST_CHECK: 'NO',
  HOME: 'C:\\Users\\keenwon',
  HOMEDRIVE: 'C:',
  HOMEPATH: '\\Users\\keenwon',
  HOSTNAME: 'laptop-win7',
  INFOPATH: '/usr/local/info:/usr/share/info:/usr/info:/share/info',
  LANG: 'C.UTF-8',
  LOCALAPPDATA: 'C:\\Users\\keenwon\\AppData\\Local',
  LOGONSERVER: '\\\\LAPTOP-WIN7',
  MANPATH: '/mingw64/share/man:/usr/local/man:/usr/share/man:/usr/man:/share/man',
  MINGW_CHOST: 'x86_64-w64-mingw32',
  MINGW_PACKAGE_PREFIX: 'mingw-w64-x86_64',
  MINGW_PREFIX: '/mingw64',
  MSYSTEM: 'MINGW64',
  MSYSTEM_CARCH: 'x86_64',
  MSYSTEM_CHOST: 'x86_64-w64-mingw32',
  MSYSTEM_PREFIX: '/mingw64',
  NUMBER_OF_PROCESSORS: '2',
  NVM_HOME: 'C:\\Users\\keenwon\\AppData\\Roaming\\nvm',
  NVM_SYMLINK: 'C:\\Program Files\\nodejs',
  OLDPWD: '/c/Users/keenwon/Desktop',
  ORIGINAL_PATH: 'C:\\Program Files\\Git\\mingw64\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Users
\\keenwon\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System3
2\\WindowsPowerShell\\v1.0;C:\\Program Files\\Git\\cmd;C:\\Program Files\\Microsoft VS Code\\bin;
C:\\Users\\keenwon\\AppData\\Roaming\\nvm;C:\\Program Files\\nodejs;C:\\Program Files\\Microsoft
VS Code\\bin;C:\\Users\\keenwon\\AppData\\Roaming\\nvm;C:\\Program Files\\nodejs',
  ORIGINAL_TEMP: '/tmp',
  ORIGINAL_TMP: '/tmp',
  OS: 'Windows_NT',
  PATH: 'C:\\Users\\keenwon\\bin;C:\\Program Files\\Git\\mingw64\\bin;C:\\Program Files\\Git\\usr
\\local\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Program Files\
\Git\\mingw64\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Users\\keenwon\\bin;C:\\Windows\\system32
;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0;C:\\Progr
am Files\\Git\\cmd;C:\\Program Files\\Microsoft VS Code\\bin;C:\\Users\\keenwon\\AppData\\Roaming
\\nvm;C:\\Program Files\\nodejs;C:\\Program Files\\Microsoft VS Code\\bin;C:\\Users\\keenwon\\App
Data\\Roaming\\nvm;C:\\Program Files\\nodejs;C:\\Program Files\\Git\\usr\\bin\\vendor_perl;C:\\Pr
ogram Files\\Git\\usr\\bin\\core_perl',
  PATHEXT: '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC',
  PKG_CONFIG_PATH: '/mingw64/lib/pkgconfig:/mingw64/share/pkgconfig',
  PLINK_PROTOCOL: 'ssh',
  PROCESSOR_ARCHITECTURE: 'AMD64',
  PROCESSOR_IDENTIFIER: 'Intel64 Family 6 Model 142 Stepping 10, GenuineIntel',
  PROCESSOR_LEVEL: '6',
  PROCESSOR_REVISION: '8e0a',
  ProgramData: 'C:\\ProgramData',
  PROGRAMFILES: 'C:\\Program Files',
  'ProgramFiles(x86)': 'C:\\Program Files (x86)',
  ProgramW6432: 'C:\\Program Files',
  PS1: '\\[\\033]0;$TITLEPREFIX:$PWD\\007\\]\\n\\[\\033[32m\\]\\u@\\h \\[\\033[35m\\]$MSYSTEM \\[
\\033[33m\\]\\w\\[\\033[36m\\]`__git_ps1`\\[\\033[0m\\]\\n$ ',
  PSModulePath: 'C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\',
  PUBLIC: 'C:\\Users\\Public',
  PWD: '/c/Users/keenwon/Desktop/get-installed-path-test',
  SESSIONNAME: 'Console',
  SHELL: 'C:\\Program Files\\Git\\usr\\bin\\bash.exe',
  SHLVL: '1',
  SSH_ASKPASS: '/mingw64/libexec/git-core/git-gui--askpass',
  SSLKEYLOGFILE: 'C:\\Users\\keenwon\\ssl-log.txt',
  SYSTEMDRIVE: 'C:',
  SYSTEMROOT: 'C:\\Windows',
  TEMP: 'C:\\Users\\keenwon\\AppData\\Local\\Temp',
  TMP: 'C:\\Users\\keenwon\\AppData\\Local\\Temp',
  TMPDIR: 'C:\\Users\\keenwon\\AppData\\Local\\Temp',
  USERDOMAIN: 'laptop-win7',
  USERNAME: 'keenwon',
  USERPROFILE: 'C:\\Users\\keenwon',
  WINDIR: 'C:\\Windows',
  windows_tracing_flags: '3',
  windows_tracing_logfile: 'C:\\BVTBin\\Tests\\installpackage\\csilogfile.log',
  _: '/usr/bin/winpty' }

C:\Users\keenwon\Desktop\get-installed-path-test\node_modules\get-installed-path\dist\index.js:16
4
    throw new Error(msg);
    ^

Error: get-installed-path: module not found "npm" in path C:\Users\keenwon\AppData\Roaming\npm\no
de_modules\npm
    at getInstalledPathSync (C:\Users\keenwon\Desktop\get-installed-path-test\node_modules\get-in
stalled-path\dist\index.js:164:11)
    at Object.<anonymous> (C:\Users\keenwon\Desktop\get-installed-path-test\index.js:5:13)
    at Module._compile (module.js:635:30)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)
    at Function.Module._load (module.js:489:3)
    at Function.Module.runMain (module.js:676:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3

keenwon avatar Sep 13 '18 01:09 keenwon

Oooh.... i just realized that you

getInstalledPathSync('npm')

Can you try with some other globally installed modules? I think that particular case is kinda tricky and a bit make sense to fail (at least on windows ;d).

tunnckoCore avatar Sep 13 '18 02:09 tunnckoCore

// index.js
const { getInstalledPathSync } = require('get-installed-path')

console.log(process.env)
console.log()
console.log(getInstalledPathSync('npm-check'))

output:

keenwon@laptop-win7 MINGW64 ~/Desktop/get-installed-path-test
$ npm i npm-check -g
C:\Program Files\nodejs\npm-check -> C:\Program Files\nodejs\node_modules\npm-check\bin\cli.js
+ [email protected]
updated 1 package in 1.836s

keenwon@laptop-win7 MINGW64 ~/Desktop/get-installed-path-test
$ npm-check --help

  Check for outdated, incorrect, and unused dependencies.

  Usage
    $ npm-check <path> <options>

  Path
    Where to check. Defaults to current directory. Use -g for checking global modules.

  Options
    -u, --update          Interactive update.
    -y, --update-all      Uninteractive update. Apply all updates without prompting.
    -g, --global          Look at global modules.
    -s, --skip-unused     Skip check for unused packages.
    -p, --production      Skip devDependencies.
    -d, --dev-only        Look at devDependencies only (skip dependencies).
    -i, --ignore          Ignore dependencies based on succeeding glob.
    -E, --save-exact      Save exact version (x.y.z) instead of caret (^x.y.z) in package.json.
    --specials            List of depcheck specials to include in check for unused dependencies.
    --no-color            Force or disable color output.
    --no-emoji            Remove emoji support. No emoji in default in CI environments.
    --debug               Debug output. Throw in a gist when creating issues on github.

  Examples
    $ npm-check           # See what can be updated, what isn't being used.
    $ npm-check ../foo    # Check another path.
    $ npm-check -gu       # Update globally installed modules by picking which ones to upgrade.


keenwon@laptop-win7 MINGW64 ~/Desktop/get-installed-path-test
$ node index.js
{ ACLOCAL_PATH: '/mingw64/share/aclocal:/usr/share/aclocal',
  ALLUSERSPROFILE: 'C:\\ProgramData',
  APPDATA: 'C:\\Users\\keenwon\\AppData\\Roaming',
  COMMONPROGRAMFILES: 'C:\\Program Files\\Common Files',
  'CommonProgramFiles(x86)': 'C:\\Program Files (x86)\\Common Files',
  CommonProgramW6432: 'C:\\Program Files\\Common Files',
  COMPUTERNAME: 'LAPTOP-WIN7',
  COMSPEC: 'C:\\Windows\\system32\\cmd.exe',
  CONFIG_SITE: '/mingw64/etc/config.site',
  DISPLAY: 'needs-to-be-defined',
  EXEPATH: 'C:\\Program Files\\Git',
  FP_NO_HOST_CHECK: 'NO',
  HOME: 'C:\\Users\\keenwon',
  HOMEDRIVE: 'C:',
  HOMEPATH: '\\Users\\keenwon',
  HOSTNAME: 'laptop-win7',
  INFOPATH: '/usr/local/info:/usr/share/info:/usr/info:/share/info',
  LANG: 'C.UTF-8',
  LOCALAPPDATA: 'C:\\Users\\keenwon\\AppData\\Local',
  LOGONSERVER: '\\\\LAPTOP-WIN7',
  MANPATH: '/mingw64/share/man:/usr/local/man:/usr/share/man:/usr/man:/share/man',
  MINGW_CHOST: 'x86_64-w64-mingw32',
  MINGW_PACKAGE_PREFIX: 'mingw-w64-x86_64',
  MINGW_PREFIX: '/mingw64',
  MSYSTEM: 'MINGW64',
  MSYSTEM_CARCH: 'x86_64',
  MSYSTEM_CHOST: 'x86_64-w64-mingw32',
  MSYSTEM_PREFIX: '/mingw64',
  NUMBER_OF_PROCESSORS: '2',
  NVM_HOME: 'C:\\Users\\keenwon\\AppData\\Roaming\\nvm',
  NVM_SYMLINK: 'C:\\Program Files\\nodejs',
  OLDPWD: '/c/Users/keenwon/Desktop',
  ORIGINAL_PATH: 'C:\\Program Files\\Git\\mingw64\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Users
\\keenwon\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System3
2\\WindowsPowerShell\\v1.0;C:\\Program Files\\Git\\cmd;C:\\Program Files\\Microsoft VS Code\\bin;
C:\\Users\\keenwon\\AppData\\Roaming\\nvm;C:\\Program Files\\nodejs;C:\\Program Files\\Microsoft
VS Code\\bin;C:\\Users\\keenwon\\AppData\\Roaming\\nvm;C:\\Program Files\\nodejs',
  ORIGINAL_TEMP: '/tmp',
  ORIGINAL_TMP: '/tmp',
  OS: 'Windows_NT',
  PATH: 'C:\\Users\\keenwon\\bin;C:\\Program Files\\Git\\mingw64\\bin;C:\\Program Files\\Git\\usr
\\local\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Program Files\
\Git\\mingw64\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Users\\keenwon\\bin;C:\\Windows\\system32
;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0;C:\\Progr
am Files\\Git\\cmd;C:\\Program Files\\Microsoft VS Code\\bin;C:\\Users\\keenwon\\AppData\\Roaming
\\nvm;C:\\Program Files\\nodejs;C:\\Program Files\\Microsoft VS Code\\bin;C:\\Users\\keenwon\\App
Data\\Roaming\\nvm;C:\\Program Files\\nodejs;C:\\Program Files\\Git\\usr\\bin\\vendor_perl;C:\\Pr
ogram Files\\Git\\usr\\bin\\core_perl',
  PATHEXT: '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC',
  PKG_CONFIG_PATH: '/mingw64/lib/pkgconfig:/mingw64/share/pkgconfig',
  PLINK_PROTOCOL: 'ssh',
  PROCESSOR_ARCHITECTURE: 'AMD64',
  PROCESSOR_IDENTIFIER: 'Intel64 Family 6 Model 142 Stepping 10, GenuineIntel',
  PROCESSOR_LEVEL: '6',
  PROCESSOR_REVISION: '8e0a',
  ProgramData: 'C:\\ProgramData',
  PROGRAMFILES: 'C:\\Program Files',
  'ProgramFiles(x86)': 'C:\\Program Files (x86)',
  ProgramW6432: 'C:\\Program Files',
  PS1: '\\[\\033]0;$TITLEPREFIX:$PWD\\007\\]\\n\\[\\033[32m\\]\\u@\\h \\[\\033[35m\\]$MSYSTEM \\[
\\033[33m\\]\\w\\[\\033[36m\\]`__git_ps1`\\[\\033[0m\\]\\n$ ',
  PSModulePath: 'C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\',
  PUBLIC: 'C:\\Users\\Public',
  PWD: '/c/Users/keenwon/Desktop/get-installed-path-test',
  SESSIONNAME: 'Console',
  SHELL: 'C:\\Program Files\\Git\\usr\\bin\\bash.exe',
  SHLVL: '1',
  SSH_ASKPASS: '/mingw64/libexec/git-core/git-gui--askpass',
  SSLKEYLOGFILE: 'C:\\Users\\keenwon\\ssl-log.txt',
  SYSTEMDRIVE: 'C:',
  SYSTEMROOT: 'C:\\Windows',
  TEMP: 'C:\\Users\\keenwon\\AppData\\Local\\Temp',
  TMP: 'C:\\Users\\keenwon\\AppData\\Local\\Temp',
  TMPDIR: 'C:\\Users\\keenwon\\AppData\\Local\\Temp',
  USERDOMAIN: 'laptop-win7',
  USERNAME: 'keenwon',
  USERPROFILE: 'C:\\Users\\keenwon',
  WINDIR: 'C:\\Windows',
  windows_tracing_flags: '3',
  windows_tracing_logfile: 'C:\\BVTBin\\Tests\\installpackage\\csilogfile.log',
  _: '/usr/bin/winpty' }

C:\Users\keenwon\Desktop\get-installed-path-test\node_modules\get-installed-path\dist\index.js:16
4
    throw new Error(msg);
    ^

Error: get-installed-path: module not found "npm-check" in path C:\Users\keenwon\AppData\Roaming\
npm\node_modules\npm-check
    at getInstalledPathSync (C:\Users\keenwon\Desktop\get-installed-path-test\node_modules\get-in
stalled-path\dist\index.js:164:11)
    at Object.<anonymous> (C:\Users\keenwon\Desktop\get-installed-path-test\index.js:5:13)
    at Module._compile (module.js:635:30)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)
    at Function.Module._load (module.js:489:3)
    at Function.Module.runMain (module.js:676:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3

keenwon avatar Sep 13 '18 03:09 keenwon

In addition, I use nvm-windows.

keenwon avatar Sep 13 '18 03:09 keenwon

@keenwon, this probably won't make a difference since you're using nvm, but if you feel like hacking around to see if this works, you could try changing the path logic on this line to path.join(process.env.APPDATA, 'Roaming/npm').

This is a pattern we might want to start checking for either way.

jonschlinkert avatar Sep 14 '18 01:09 jonschlinkert