Bug#969986: [Pkg-javascript-devel] Bug#969986: Bug#969986: npm: Error: Cannot find module 'semver'
reassign 969986 nodejs merge 969986 932659 thanks On Wed, 2020-09-09 at 21:11 +0200, Jonas Smedegaard wrote: > Quoting Kevin Locke (2020-09-09 20:32:01) >> Did you try installing to a chroot: >> >> debootstrap testing npm-chroot && chroot npm-chroot sh -c 'apt install -y >> npm && npm --version' > > I tried above command just now (inside another chroot), and it failed: > > [...] > Error: Cannot find module 'semver' > [...] > > Installing npm into a clean pbuilder chroot (either sid or bullseye) and > running "npm --version" does not fail, however. Good catch. I am seeing the same behavior. It looks to me like a difference in the node module search path, not specific to npm. If I run `node -e 'console.log(require.resolve.paths("semver"))'` in the chroot, I get (note the missing /usr prefix): [ '/node_modules', '/root/.node_modules', '/root/.node_libraries', '/lib/x86_64-linux-gnu/nodejs', '/share/nodejs', '/lib/nodejs' ] In pbuilder I get: [ '/node_modules', '/root/.node_modules', '/root/.node_libraries', '/usr/lib/x86_64-linux-gnu/nodejs', '/usr/share/nodejs', '/usr/lib/nodejs' ] I think the problem is that process.execPath is "node" in the chroot and "/usr/bin/node" in pbuilder and that this is used to build the module search path. The problem occurs when /proc is not mounted. It appears this was already reported in #932659. Sorry for not noticing that earlier. Thanks, Kevin signature.asc Description: PGP signature
Bug#969986: [Pkg-javascript-devel] Bug#969986: Bug#969986: npm: Error: Cannot find module 'semver'
Quoting Kevin Locke (2020-09-09 20:32:01) > Did you try installing to a chroot: > > debootstrap testing npm-chroot && chroot npm-chroot sh -c 'apt install -y npm > && npm --version' That's a fair questions: autopkgtest has its own set of dependencies which might hide this issue. I tried above command just now (inside another chroot), and it failed: internal/modules/cjs/loader.js:968 throw err; ^ Error: Cannot find module 'semver' Require stack: - /usr/share/npm/lib/utils/unsupported.js - /usr/share/npm/bin/npm-cli.js at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15) at Function.Module._load (internal/modules/cjs/loader.js:841:27) at Module.require (internal/modules/cjs/loader.js:1025:19) at require (internal/modules/cjs/helpers.js:72:18) at Object. (/usr/share/npm/lib/utils/unsupported.js:2:14) at Module._compile (internal/modules/cjs/loader.js:1137:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10) at Module.load (internal/modules/cjs/loader.js:985:32) at Function.Module._load (internal/modules/cjs/loader.js:878:14) at Module.require (internal/modules/cjs/loader.js:1025:19) { code: 'MODULE_NOT_FOUND', requireStack: [ '/usr/share/npm/lib/utils/unsupported.js', '/usr/share/npm/bin/npm-cli.js' ] } The package node-semver _was_ installed. Installing npm into a clean pbuilder chroot (either sid or bullseye) and running "npm --version" does not fail, however. - Jonas -- * Jonas Smedegaard - idealist & Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ [x] quote me freely [ ] ask before reusing [ ] keep private signature.asc Description: signature