学好node开发

mac全局安装的权限问题

正常用户安装之后,使用npm install就是在当前项目中创建node_modules

npm install -g的形式,就是创建全局的node_modules,一般是供用户全局使用的命令。

出现需要root权限的情况

有时候npm install -g的时候,会报错:

npm ERR! Error: EACCES, open '/Users/{$USER}/.npm/debug/0.7.4/package/package.json'
npm ERR!  { [Error: EACCES, open '/Users/{$USER}/.npm/debug/0.7.4/package/package.json']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/Users/{$USER}/.npm/debug/0.7.4/package/package.json',
npm ERR!   parent: 'sohunews-node' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 13.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/{$USER}/project/sohu/sohunews-node
npm ERR! node -v v0.10.29
npm ERR! npm -v 1.4.14
npm ERR! path /Users/{$USER}/.npm/debug/0.7.4/package/package.json
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, open '/Users/{$USER}/.npm/debug/0.7.4/package/package.json'
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/{$USER}/project/sohu/sohunews-node/npm-debug.log
npm ERR! not ok code 0

提示你某个目录当前用户无法在其中无法创建项目。

原因是执行.npm目录是在root用户下创建的,而我当前执行npm install的用户是非root用户。

解决方法:把根目录下的.npm目录权限更改为当前用户的权限就OK了。命令行输入sudo chown -R $USER ~/.npm

现在再执行npm install应该就可以正常安装项目依赖了。

如果再不行,清空一下tmp目录: rmdir ~/tmp.