NPM总是要求我在一个Express项目的根

由于我使用Express.js,我不能正常使用npm install 。 我总是必须为此付出努力

比方说,我生成一个projet

 express --sessions --css css 

当我尝试做一个npm install后,我有这些错误

 npm WARN package.json application-name@0.0.1 No README.md file found! npm ERR! Error: EACCES, open '/Users/Arnaud/.npm/e7d16cae-express-3-1-1.lock' npm ERR! { [Error: EACCES, open '/Users/Arnaud/.npm/e7d16cae-express-3-1-1.lock'] npm ERR! errno: 3, npm ERR! code: 'EACCES', npm ERR! path: '/Users/Arnaud/.npm/e7d16cae-express-3-1-1.lock' } npm ERR! npm ERR! Please try running this command again as root/Administrator. npm ERR! System Darwin 12.3.0 npm ERR! command "node" "/usr/local/bin/npm" "install" npm ERR! cwd /Users/Arnaud/Sites/test npm ERR! node -v v0.10.2 npm ERR! npm -v 1.2.15 npm ERR! path /Users/Arnaud/.npm/e7d16cae-express-3-1-1.lock npm ERR! code EACCES npm ERR! errno 3 npm ERR! stack Error: EACCES, open '/Users/Arnaud/.npm/e7d16cae-express-3-1-1.lock' npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /Users/Arnaud/Sites/test/npm-debug.log npm ERR! not ok code 0 

但如果做一个sudo npm install ,这一切都很好…任何想法为什么?

这可能是一个权限问题。 要回收/Users/Arnaud/.npm目录的所有权,请在/Users/Arnaud/.npm执行以下命令

 chown -R Arnaud /Users/Arnaud/.npm 

如果您使用的是OSX,则还可以使用“磁盘工具”来修复整个磁盘的权限,这也许可以解决您的问题。

如果您使用的是MAC OS或Unix / Lunix机器,则只需要知道,即使您的root用户需要在terminal的命令行上使用sudo命令,也需要了解安全措施。 所以大部分时间改变文件和目录的所有权是不够的。

原因是你要执行的命令在系统文件上会有很大的改变,你需要input你的根admin的密码,就像在Windows系统中要求你inputpipe理员密码进行系统更改一样这个:

* Ms-MacBook-Pro:〜AMB $ sudo npm install -g express-generator

密码:(input您的密码为根/pipe理员)

 /usr/local/bin/express -> /usr/local/lib/node_modules/express-generator/bin/express-cli.js /usr/local/lib └─┬ express-generator@4.15.0 ├─┬ commander@2.9.0 │ └── graceful-readlink@1.0.1 ├── ejs@2.5.6 ├─┬ mkdirp@0.5.1 │ └── minimist@0.0.8 └── sorted-object@2.0.1 

Ms-MacBook-Pro:〜AMB $ *