nvm icon indicating copy to clipboard operation
nvm copied to clipboard

`node/vXX.X.X/lib/node_modules` missing from module.paths

Open non-bin opened this issue 1 year ago • 0 comments

Operating system and version:

Debian 6.1.106-3 (2024-08-26) x86_64

nvm debug output:

nvm --version: v0.40.0
$SHELL: /usr/bin/zsh
$SHLVL: 2
whoami: 'alice'
${HOME}: /home/alice
${NVM_DIR}: '${HOME}/.nvm'
${PATH}: ${NVM_DIR}/versions/node/v22.9.0/bin:${HOME}/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:${HOME}/.local/bin:${HOME}/.local/bin
$PREFIX: ''
${NPM_CONFIG_PREFIX}: ''
$NVM_NODEJS_ORG_MIRROR: ''
$NVM_IOJS_ORG_MIRROR: ''
shell version: 'zsh 5.9 (x86_64-debian-linux-gnu)'
uname -a: 'Linux 6.1.0-25-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.106-3 (2024-08-26) x86_64 GNU/Linux'
checksum binary: 'sha256sum'
OS version: Debian GNU/Linux 12
awk: /usr/bin/awk, GNU Awk 5.2.1, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.2.0, GNU MP 6.2.1)
curl: /usr/bin/curl, curl 7.88.1 (x86_64-pc-linux-gnu) libcurl/7.88.1 OpenSSL/3.0.14 zlib/1.2.13 brotli/1.0.9 zstd/1.5.4 libidn2/2.3.3 libpsl/0.21.2 (+libidn2/2.3.3) libssh2/1.10.0 nghttp2/1.52.0 librtmp/2.3 OpenLDAP/2.5.13
wget: /usr/bin/wget, GNU Wget 1.21.3 built on linux-gnu.
git: /usr/bin/git, git version 2.39.5
ls: cannot access 'grep:': No such file or directory
grep: grep: aliased to grep --color=auto (grep --color=auto), grep (GNU grep) 3.8
sed: /usr/bin/sed, sed (GNU sed) 4.9
cut: /usr/bin/cut, cut (GNU coreutils) 9.1
basename: /usr/bin/basename, basename (GNU coreutils) 9.1
ls: cannot access 'rm:': No such file or directory
rm: rm: aliased to rm -r (rm -r), rm (GNU coreutils) 9.1
ls: cannot access 'mkdir:': No such file or directory
mkdir: mkdir: aliased to mkdir -p (mkdir -p), mkdir (GNU coreutils) 9.1
xargs: /usr/bin/xargs, xargs (GNU findutils) 4.9.0
nvm current: v22.9.0
which node: ${NVM_DIR}/versions/node/v22.9.0/bin/node
which iojs: iojs not found
which npm: ${NVM_DIR}/versions/node/v22.9.0/bin/npm
npm config get prefix: ${NVM_DIR}/versions/node/v22.9.0
npm root -g: ${NVM_DIR}/versions/node/v22.9.0/lib/node_modules

nvm ls output:

->      v22.9.0
default -> node (-> v22.9.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v22.9.0) (default)
stable -> 22.9 (-> v22.9.0) (default)
lts/* -> lts/iron (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.20.4 (-> N/A)
lts/iron -> v20.17.0 (-> N/A)

How did you install nvm?

https://nodejs.org/en/download/package-manager

What steps did you perform?

$ npm i -g eslint
$ echo 'require("eslint");' | node
Error: Cannot find module 'globals'
$ eslint -v
v9.11.0

What happened? What did you expect to happen?

I can run modules installed globally so the path is working fine, but I can't import them and module.paths seems to be missing node/version/lib/node_modules and when I add it, it seems to work as I would expect

$ node
Welcome to Node.js v22.9.0.
Type ".help" for more information.
> module.paths
[
  '/home/alice/.nvm/versions/node/v22.9.0/bin/repl/node_modules',
  '/home/alice/.nvm/versions/node/v22.9.0/bin/node_modules',
  '/home/alice/.nvm/versions/node/v22.9.0/node_modules',
  '/home/alice/.nvm/versions/node/node_modules',
  '/home/alice/.nvm/versions/node_modules',
  '/home/alice/.nvm/node_modules',
  '/home/alice/node_modules',
  '/home/node_modules',
  '/node_modules',
  '/home/alice/.node_modules',
  '/home/alice/.node_libraries',
  '/home/alice/.nvm/versions/node/v22.9.0/lib/node'
]
> require('eslint')
Uncaught Error: Cannot find module 'eslint'
> module.paths.push('/home/alice/.nvm/versions/node/v22.9.0/lib/node_modules');
13
> require('eslint')
{
  Linter: [class Linter],
  loadESLint: [AsyncFunction: loadESLint],
  ESLint: [class ESLint] { configType: 'flat' },
  RuleTester: [class RuleTester] {
    [Symbol(itOnly)]: null,
    [Symbol(it)]: null,
    [Symbol(describe)]: null
  },
  SourceCode: [class SourceCode extends TokenStore]
}

Is there anything in any of your profile files that modifies the PATH?

PATH="$HOME/bin:$PATH"
PATH="$HOME/.local/bin:$PATH"
PATH="$PATH:/home/alice/.local/bin"

non-bin avatar Sep 21 '24 11:09 non-bin