【发布时间】:2013-02-20 22:00:33
【问题描述】:
我有一个 NFS 挂载的主文件夹,我正在尝试通过 npm 设置全局包,例如:
sudo npm install -g jshint
这给了我一个错误,因为在 sudo 下我无法在远程服务器上创建任何东西(在 npm 之外尝试过)
npm ERR! Error: EACCES, open '/home/explunit/.npm/a02a2468-jshint.lock'
npm ERR! { [Error: EACCES, open '/home/explunit/.npm/a02a2468-jshint.lock']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/home/explunit/.npm/a02a2468-jshint.lock' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
我确信有人会在 2 分钟内出现并说“不要使用 sudo ——真正的开发人员会明白如何在没有它的情况下设置 node/npm!”,但是 a) 我一直不清楚鉴于npm readme 建议使用 sudo,这是如何设计的,并且 b) 在这种情况下,我真的不想要任何与我的特定用户相关的东西(它是一个构建服务器)
所以我想真正的问题是如何让 npm 忽略我的主文件夹并为 .npm 使用其他位置?
【问题讨论】:
-
您可以将主目录中的
.npm替换为指向可写的非nfs 位置的符号链接。