我有一个NFS挂载的主文件夹,我试图通过npm设置全局包,例如:
sudo npm install -g jshint
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误,因为在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.
Run Code Online (Sandbox Code Playgroud)
我敢肯定有人会在2分钟内说"不要使用sudo - 一个真正的开发人员会理解如何在没有它的情况下设置node/npm!"但是a)我从来都不清楚这是怎么回事设计工作,因为npm自述文件建议sudo,和b)在这种情况下,我真的不希望任何绑定到我的特定用户(它是一个构建服务器)
所以我想真正的问题是如何使npm忽略我的主文件夹并使用其他位置.npm?
尝试使用此更改缓存的位置.
npm config set cache /SOMEWHERE/ELSE
Run Code Online (Sandbox Code Playgroud)
/ SOMEWHERE/ELSE应该是运行命令的用户可以写入的地方.