inx*_*xoy 210 node.js ionic-framework ionic2
当我运行"Ionic start project name"时,我总是收到此错误消息:
Running command - failed![ERROR] An error occurred while running npm install (exit code 1):
module.js:471
throw err;
^
Error: Cannot find module '../lib/utils/unsupported.js'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at /usr/local/lib/node_modules/npm/bin/npm-cli.js:19:21
at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:79:3)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
Run Code Online (Sandbox Code Playgroud)
小智 663
尝试/usr/local/lib/node_modules/npm
再次删除并重新安装节点.这应该工作.
sudo rm -rf /usr/local/lib/node_modules/npm
brew reinstall node
Run Code Online (Sandbox Code Playgroud)
tac*_*ase 55
我按照之前的答案重新安装了节点.但我得到了这个错误.
警告:安装后步骤未成功完成您可以再次尝试使用
brew postinstall node
所以我运行了这个命令
sudo chown -R $(whoami):admin /usr/local/lib/node_modules/
Run Code Online (Sandbox Code Playgroud)
然后跑了
brew postinstall node
Run Code Online (Sandbox Code Playgroud)
Den*_*nae 27
我收到了类似的错误,现在让它正常工作.
首先确保您拥有最新版本
brew update
Run Code Online (Sandbox Code Playgroud)
删除以前的节点实例:
brew uninstall node
Run Code Online (Sandbox Code Playgroud)
然后重新安装最新版本:
brew install node
Run Code Online (Sandbox Code Playgroud)
然后确保它已符号链接到/ usr/local,如果它还没有.您将收到错误消息,告知您完成此步骤.
brew link --overwrite node
Run Code Online (Sandbox Code Playgroud)
还提供了有关如何安装/升级节点的更多详细信息.
Geo*_*ker 18
在Mac OS X(10.12.6)上,我通过执行以下操作解决了此问题:
brew uninstall --force node
brew install node
Run Code Online (Sandbox Code Playgroud)
然后我得到一个错误抱怨节点postinstall失败,并重新运行 brew postinstall node
然后我得到一个错误:
permission denied @ rb_sysopen /usr/local/lib/node_modules/npm/bin/npx
Run Code Online (Sandbox Code Playgroud)
我解决了这个错误:
sudo chown -R $(whoami):admin /usr/local/lib/node_modules
Run Code Online (Sandbox Code Playgroud)
现在我不再犯这个错误了.
如果您使用的是"n"库@ https://github.com/tj/n.请执行下列操作
echo $NODE_PATH
Run Code Online (Sandbox Code Playgroud)
如果节点路径为空,则
sudo n latest - sudo is optional depending on your system
Run Code Online (Sandbox Code Playgroud)
使用n切换Node.js版本后,npm可能无法正常工作.
curl -0 -L https://npmjs.com/install.sh | sudo sh
echo NODE_PATH
Run Code Online (Sandbox Code Playgroud)
您现在应该看到您的节点路径.否则,它可能是别的东西
如前面提到的。
sudo rm -rf /usr/local/lib/node_modules/npm
brew uninstall --force node
brew install node
Run Code Online (Sandbox Code Playgroud)
该错误Cannot find module '../lib/utils/unsupported.js'
是由require('../lib/utils/unsupported.js')
in引起的./lib/node_modules/npm/bin/npm-cli.js
。
根据nodejs require
docs,相对于文件搜索所需的模块,因为它以../
.
因此,如果我们采用../lib/utils/unsupported.js
从 开始的相对路径./lib/node_modules/npm/bin/npm-cli.js
,则所需的模块必须驻留在 中./lib/node_modules/npm/lib/utils/unsupported.js
。如果它不存在,我会看到两个选项:
npm
没有符号链接到./lib/node_modules/npm/bin/npm-cli.js
. 这就是导致我设置错误的原因。如果您调用npm
,它通常会发现它正在PATH
env var 中列出的目录中搜索它。例如,它可能位于./bin
. 但是,npm
在./bin
目录中应该只是指向上述./lib/node_modules/npm/bin/npm-cli.js
. 如果它不是符号链接而是直接包含代码,则在安装过程中的某个地方,符号链接将被它链接到的文件替换。在这种情况下,重新创建符号链接就足够了:(cd ./bin; rm npm; ln -s ../lib/node_modules/npm/bin/npm-cli.js npm
更新:命令已修复,谢谢@massimo)所有建议检查NODE_PATH
或npmrc
配置的答案都应该被忽略,因为在相对搜索模块时不会考虑这些。
尝试了所有以上/较旧的Brew安装答案,但没有一个适用于我的笔记本电脑。
只有以下方法可以解决我的问题。
1)运行以下命令:
sudo rm -rf /usr/local/lib/node_modules/npm
brew uninstall --force node
Run Code Online (Sandbox Code Playgroud)
2)然后,前往Node.js官方网站https://nodejs.org/en/download/current/下载用于新安装的最新软件包。
3)再次运行您的npm命令,该命令应该会出现任何错误。
此方法适用于macOS Mojave版本10.14.4。
归档时间: |
|
查看次数: |
96225 次 |
最近记录: |