我只是尝试使用终端安装nodemon或supervisor,我不断收到这个我不明白的错误。我尝试以sudo npm install supervisor -g
作为管理员运行似乎工作,但是当我删除/添加一些js代码时没有。有什么想法吗?
Squirrels-MacBook-Air:lesson7_examples Squirrel$ npm install nodemon -g
npm http GET https://registry.npmjs.org/nodemon
npm http 304 https://registry.npmjs.org/nodemon
npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/nodemon'
npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/nodemon']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/usr/local/lib/node_modules/nodemon',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/usr/local/lib/node_modules/nodemon',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack:
npm ERR! [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23',
npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53',
npm ERR! 'Object.oncomplete (fs.js:107:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Darwin 12.4.1
npm ERR! command "node" "/usr/local/bin/npm" "install" "nodemon" "-g"
npm ERR! cwd /Users/Squirrel/Documents/Code/Memry/Memry_Mongoose
npm ERR! node -v v0.10.21
npm ERR! npm -v 1.3.11
npm ERR! path /usr/local/lib/node_modules/nodemon
npm ERR! fstream_path /usr/local/lib/node_modules/nodemon
npm ERR! fstream_type Directory
npm ERR! fstream_class DirWriter
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/nodemon'
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/Squirrel/Documents/Code/Memry/Memry_Mongoose/npm-debug.log
npm ERR! not ok code 0
Squirrels-MacBook-Air:lesson7_examples Squirrel$
P.S。我在预先存在的模板上运行它,我的依赖项是
"dependencies": {
"mongoose": "~3.6.15",
"express": "~3.3.4",
"jade": "~0.34.1",
"email-validator": "~0.1.2"
}
当我尝试sudo时,这就是发生的事情:
sudo npm install supervisor -g --save
Password:
npm http GET https://registry.npmjs.org/supervisor
npm http 304 https://registry.npmjs.org/supervisor
/usr/local/bin/node-supervisor -> /usr/local/lib/node_modules/supervisor/lib/cli-wrapper.js
/usr/local/bin/supervisor -> /usr/local/lib/node_modules/supervisor/lib/cli-wrapper.js
supervisor@0.5.6 /usr/local/lib/node_modules/supervisor
这似乎有效。但是在应用程序代码中我开始添加和删除javascript并单击“保存”,但除非我在终端内重新启动服务器,否则效果不会发生。
答案 0 :(得分:11)
晚会,但重要的是要注意在安装npm时应避免使用sudo
。对sudo npm install
来说,这是一个巨大的安全风险,因为您正在为您的计算机提供任意脚本root权限。
相反,你应该让自己成为NPM目录的所有者
sudo chown -R $USER /usr/local
然后
sudo chown -R $USER ~/.npm
现在你应该能够在没有sudo的情况下运行命令:
npm install supervisor -g --save
答案 1 :(得分:6)
您遇到EACCES
错误,这意味着您无权在/usr/local/lib/node_modules/nodemon
中以Mac OS X中的标准用户身份创建目录。
有两种解决方案:
sudo
运行与超级用户相同的命令。该软件包将安装在/usr/local/lib/node_modules
。答案 2 :(得分:2)
我知道我已经迟到了,但您应该查看nvm(节点对rbenv或virtualenv的回答)。
安装:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
然后将. ~/.nvm/nvm.sh
添加到您的~/.bashrc
,~/.profile
或~/.zshrc
用法:
如果您想使用版本0.10,请运行nvm install 0.12.7
(或nvm install stable
),然后nvm use 0.12.7
。
安装你的libs,EACCESS没有错误,然后去镇上。 npm install -g supervisor
效果很好!
要在新标签中加载特定版本的默认值,请使用命令
nvm alias default 0.12.7