我从这里下载了最新的Node LTS Linux x86二进制tarball:
https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x86.tar.xz
并在此处提取它:
/home/paul/dev/node-v8.12.0-linux-x86
我将Node的bin /目录添加到了我的路径:
$ echo $PATH
/home/paul/dev/node-v8.12.0-linux-x86/bin:/usr/local/bin:/usr/bin:/bin
Node运行正常:
$ node -v
v8.12.0
但是,当运行与Node二进制压缩包捆绑在一起的npm时,我得到了:
$ npm -v
module.js:550
throw err;
^
Error: Cannot find module 'semver'
at Function.Module._resolveFilename (module.js:548:15)
at Function.Module._load (module.js:475:25)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/home/paul/dev/node-v8.12.0-linux-x86/lib/node_modules/npm/lib/utils/unsupported.js:2:14)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
启用模块的调试会显示其正在搜索的路径以找到semver模块:
MODULE 19001: Module._load REQUEST semver parent: /home/paul/dev/node-v8.12.0-linux-x86/lib/node_modules/npm/lib/utils/unsupported.js
MODULE 19001: looking for "semver" in ["/home/paul/dev/node-v8.12.0-linux-x86/lib/node_modules/npm/lib/utils/node_modules","/home/paul/dev/node-v8.12.0-linux-x86/lib/node_modules/npm/lib/node_modules","/home/paul/dev/node-v8.12.0-linux-x86/lib/node_modules/npm/node_modules","/home/paul/dev/node-v8.12.0-linux-x86/lib/node_modules","/home/paul/dev/node-v8.12.0-linux-x86/node_modules","/home/paul/dev/node_modules","/home/paul/node_modules","/home/node_modules","/node_modules","/home/paul/.node_modules","/home/paul/.node_libraries","/home/paul/dev/node-v8.12.0-linux-x86/lib/node"]
在那儿,我看到这条路:
/home/paul/dev/node-v8.12.0-linux-x86/lib/node_modules/npm/node_modules
semver模块所在的位置(作为npm的依赖模块):
$ ls -al /home/paul/dev/node-v8.12.0-linux-x86/lib/node_modules/npm/node_modules/semver
total 80
drwxr-xr-x 3 paul paul 125 Sep 29 11:01 .
drwxr-xr-x 351 paul paul 12288 Sep 10 15:23 ..
drwxr-xr-x 2 paul paul 27 Sep 10 15:23 bin
-rw-r--r-- 1 paul paul 765 Feb 10 2018 LICENSE
-rw-r--r-- 1 paul paul 1598 Aug 17 17:42 package.json
-rw-r--r-- 1 paul paul 619 Aug 17 17:42 range.bnf
-rw-r--r-- 1 paul paul 14655 Aug 17 17:42 README.md
-rw-r--r-- 1 paul paul 36503 Aug 17 17:42 semver.js
那么Node为什么不能为npm解析semver模块?
为了娱乐,我尝试了支持x86的最新9.x版本,但仍然失败,但是给出了不同的消息:
$ node -v
v9.11.2
$ npm -v
internal/modules/cjs/loader.js:550
throw err;
^
Error: Cannot find module '/home/paul/dev/node/bin/npm'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:548:15)
at Function.Module._load (internal/modules/cjs/loader.js:475:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:695:10)
at startup (internal/bootstrap/node.js:201:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:516:3)
Node的模块分辨率肯定可以解决问题。
谢谢! -保罗
答案 0 :(得分:-1)
我在create-react-app上遇到了同样的问题 我不知道如何,但是添加'sudo'对我有用。
$ npm开始
--->提供与您相同的错误
$ sudo npm start
--->完美地工作
希望它可以解决您的问题