我已经在Ubuntu 18.04上通过PPA安装了NodeJS。但是,在运行sudo npm install -g @angular/cli
时,我在这篇文章的底部看到了错误。
我正在使用节点v10.6.0和npm v6.1.0。我尝试了这些命令,但是没有运气:
A) sudo npm install -g @angular/cli@latest
B) npm install -g @angular/cli (no sudo)
C) sudo npm install -g angular-cli --unsafe-perm=true
我注意到的一件事是,万一C实际安装并以sudo运行时可以工作。但是它不能作为普通用户使用(“ bash:ng:找不到命令”)。
我检查了我的PATH环境变量,并确认npm bin -g
(/ usb / bin)的结果确实在所有用户的PATH中。
任何帮助将不胜感激。
me@laptop:~$ sudo npm install -g @angular/cli
[sudo] password for me:
/usr/bin/ng -> /usr/lib/node_modules/@angular/cli/bin/ng
> @angular/cli@6.0.8 postinstall /usr/lib/node_modules/@angular/cli
> node ./bin/ng-update-message.js
internal/modules/cjs/loader.js:583
throw err;
^
Error: Cannot find module '/usr/lib/node_modules/@angular/cli/bin/ng-update-message.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
at Function.Module._load (internal/modules/cjs/loader.js:507:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:236:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:560:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @angular/cli@6.0.8 postinstall: `node ./bin/ng-update-message.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @angular/cli@6.0.8 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
答案 0 :(得分:0)
发现它!经过大量挖掘之后,我意识到这是一个权限问题。在PAM模块(Ubuntu)中设置了系统范围的 umask ,以创建具有比平常更多的限制权限的文件和文件夹。这是我恢复到正常状态并安装Angular CLI的方法:
sudo vi /etc/pam.d/common-session
然后更改此行:session optional pam_umask.so umask=077
对此:session optional pam_umask.so
重新启动,然后:sudo npm install -g @angular/cli
EtVoilà!