全局安装grunt.js失败

Val*_*sin 9 javascript node.js npm gruntjs

我可以gruntjs在本地安装使用npm install grunt.

但是当我试图在全球范围内安装它时npm install grunt -g,我收到一个错误:

npm ERR! Error: EACCES, symlink '../lib/node_modules/grunt/bin/grunt'
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.
npm ERR! 
npm ERR! System Linux 2.6.18-92.el5xen
npm ERR! command "nodejs" "/usr/bin/npm" "install" "grunt" "-g"
npm ERR! cwd /home/lj
npm ERR! node -v v0.6.18
npm ERR! npm -v 1.1.19
npm ERR! path ../lib/node_modules/grunt/bin/grunt
npm ERR! code EACCES
npm ERR! message EACCES, symlink '../lib/node_modules/grunt/bin/grunt'
npm ERR! errno {}

npm ERR! Error: EACCES, open 'npm-debug.log'
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.
npm ERR! 
npm ERR! System Linux 2.6.18-92.el5xen
npm ERR! command "nodejs" "/usr/bin/npm" "install" "grunt" "-g"
npm ERR! cwd /home/lj
npm ERR! node -v v0.6.18
npm ERR! npm -v 1.1.19
npm ERR! path npm-debug.log
npm ERR! code EACCES
npm ERR! message EACCES, open 'npm-debug.log'
npm ERR! errno {}
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/lj/npm-debug.log
npm not ok
Run Code Online (Sandbox Code Playgroud)

sudo我有错误太:

npm ERR! Error: spawn ENOENT
npm ERR!     at errnoException (child_process.js:483:11)
npm ERR!     at ChildProcess.spawn (child_process.js:446:11)
npm ERR!     at child_process.js:342:9
npm ERR!     at Object.execFile (child_process.js:252:15)
npm ERR!     at uidNumber (/usr/lib/nodejs/uid-number/uid-number.js:33:17)
npm ERR!     at loadUid (/usr/lib/nodejs/npm/lib/npm.js:336:5)
npm ERR!     at Array.2 (/usr/lib/nodejs/bind-actor.js:15:8)
npm ERR!     at LOOP (/usr/lib/nodejs/chain.js:15:13)
npm ERR!     at /usr/lib/nodejs/chain.js:18:7
npm ERR!     at setUser (/usr/lib/nodejs/npm/lib/npm.js:346:32)
npm ERR! You may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>
npm ERR! 
npm ERR! System Linux 2.6.18-92.el5xen
npm ERR! command "nodejs" "/usr/bin/npm" "install" "grunt" "-g"
npm ERR! cwd /home/lj
npm ERR! node -v v0.6.18
npm ERR! npm -v 1.1.19
npm ERR! syscall spawn
npm ERR! code ENOENT
npm ERR! message spawn ENOENT
npm ERR! errno {}
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/lj/npm-debug.log
npm not ok
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能安装它?

PS某些文件夹的权限可能适用root:root于我的用户.我们的管理员以这种方式安装了VM ...

小智 10

我也有咕噜声和凉亭这个问题

我发现的解决方案是在本文NPM配置中

在.npmrc中,您需要设置前缀路径

prefix = /usr/local
Run Code Online (Sandbox Code Playgroud)

或者你可以从终端这样做:

npm config set prefix "/usr/local"
Run Code Online (Sandbox Code Playgroud)

这种方式节点将知道安装它们的位置:

在npm 1.0中,有两种安装方式:

全局 - 这会将模块放在{prefix}/lib/node_modules中,并将可执行文件放在{prefix}/bin中,其中{prefix}通常类似于/ usr/local.它还在{prefix}/share/man中安装手册页,如果它们已经提供的话.

本地 - 这会将您的软件包安装在当前工作目录中.节点模块进入./node_modules,可执行文件进入./node_modules/.bin/,并且根本没有安装手册页.


Sin*_*hus 4

尝试 chowning node_modules 文件夹,然后再次尝试安装:

sudo chown -R $USER /path/to/node_modules/folder
Run Code Online (Sandbox Code Playgroud)