我通过全局安装了一些nodejs包
sudo npm install gulp -g
现在我(或同一台机器上的其他开发人员)想在项目中使用它
me@host:/my/project$ npm link gulp
它失败了
unbuild gulp@3.8.11
npm ERR! Error: EPERM, chmod '/my/projectnode_modules/gulp/bin/gulp.js'
npm ERR! { [Error: EPERM, chmod '/my/projectnode_modules/gulp/bin/gulp.js']
npm ERR! errno: 50,
npm ERR! code: 'EPERM',
npm ERR! path: '/my/projectnode_modules/gulp/bin/gulp.js' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Linux 3.2.0-4-amd64
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "link" "gulp"
npm ERR! cwd /raid5/workspaces/jgr/aktivglueck-laravel
npm ERR! node -v v0.10.29
npm ERR! npm -v 1.4.21
npm ERR! path /my/projectnode_modules/gulp/bin/gulp.js
npm ERR! code EPERM
npm ERR! errno 50
npm ERR! stack Error: EPERM, chmod '/my/projectnode_modules/gulp/bin/gulp.js'
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /my/projectnpm-debug.log
npm ERR! not ok code 0
与
sudo npm link gulp
一切正常。
我想知道的是:为什么 npm link
需要管理员权限? 据我了解,我正在我的项目文件夹中创建一个链接,我拥有完全权限 -那么它在全局系统上做了什么?
最佳答案
我相信 npm link
会在全局安装的 Node 包所在的位置创建一个指向当前目录的符号链接(symbolic link)。参见 here .
如果您对该路径没有写权限(您可以使用 npm config get prefix
检查),您将看到您在那里看到的错误。
为避免必须 sudo
全局安装/链接,您可以更改该目录的所有权/权限。
关于node.js - 为什么我必须以管理员身份调用 npm link?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30529525/