Node.js NPM无法安装依赖项-尝试解锁尚未';我没被锁上
我一直在尝试在package.json文件上运行npm安装,但遇到了很多麻烦。它一直在我所有的依赖项上说“错误:尝试解锁尚未锁定的XXX”。以下是其中之一:Node.js NPM无法安装依赖项-尝试解锁尚未';我没被锁上,node.js,npm,karma-runner,Node.js,Npm,Karma Runner,我一直在尝试在package.json文件上运行npm安装,但遇到了很多麻烦。它一直在我所有的依赖项上说“错误:尝试解锁尚未锁定的XXX”。以下是其中之一: Error: Attempt to unlock tbd@~0.6.4, which hasn't been locked at unlock (/usr/local/lib/node_modules/npm/lib/cache.js:1304:11) at cb (/usr/local/lib/node_m
Error: Attempt to unlock tbd@~0.6.4, which hasn't been locked
at unlock (/usr/local/lib/node_modules/npm/lib/cache.js:1304:11)
at cb (/usr/local/lib/node_modules/npm/lib/cache.js:646:5)
at /usr/local/lib/node_modules/npm/lib/cache.js:655:20
at /usr/local/lib/node_modules/npm/lib/cache.js:1290:7
at /usr/local/lib/node_modules/npm/node_modules/lockfile/lockfile.js:167:38
at OpenReq.Req.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:144:5)
at OpenReq.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:64:22)
at Object.oncomplete (fs.js:107:15)
如果我尝试以sudo的形式运行它,它似乎会更进一步,并开始安装一些软件包,但会弹出一些新的错误:
> chokidar@0.8.1 postinstall /Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/chokidar
> node setup-deps.js
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
node.js:811
var cwd = process.cwd();
^
Error: EACCES, permission denied
at Function.startup.resolveArgv0 (node.js:811:23)
at startup (node.js:58:13)
at node.js:902:3
npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q'
npm ERR! error rolling back karma@0.10.9 { [Error: ENOTEMPTY, rmdir '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q']
npm ERR! error rolling back errno: 53,
npm ERR! error rolling back code: 'ENOTEMPTY',
npm ERR! error rolling back path: '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q' }
npm ERR! Error: ENOENT, chown '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/socket.io/lib/socket.io.js'
我最近更新了我的节点和npm安装。所以这可能与此有关。另外,我的大部分开发工作都是在办公室进行的,而今天我正在使用VPN,所以这可能也与此有关
有什么想法吗?今天下午我和一位同事一起工作,找出了问题所在。我的主目录中的“.npm”文件夹由根用户而不是我自己拥有。我不确定是什么原因造成的。也许我曾经安装过node或npm作为根管理员。无论如何,我只是运行了
sudochown-R[username].npm
,我终于能够从我的项目中再次运行npm install
命令了 在我的例子中,问题是使用没有主目录的用户调用npm,因此,例如,以下命令将失败:
sudo -u someUser npm install
解决方案是提供一个主目录,其中someUser
具有写访问权限:
sudo -u someUser HOME=/some/directory npm install
根据photusenigma网站:
在终端窗口中运行这些命令(注意-不要替换$USER部分…这是获取用户的linux命令!):
…而且…如果您在mac上(和我一样),在运行这些命令后仍然看到错误,那么运行最后一个命令,您应该会很好。(建议您在执行此操作之前尝试测试。我不喜欢更改整个/usr/local目录上的权限,除非看起来确实有必要!)
这些对我都不起作用。我必须通过执行以下操作以root用户身份运行:
sudo su -
sudo npm install forever -g
然后,安装在Linux Ubuntu 14.04上的软件包出现了相同的问题,并根据接受的答案更改了任务,从而解决了该问题:
sudo chown -R $USER ~/.npm
但是,应避免使用第二个命令,因为它会降低系统资源的权限(sudo chown-R$USER/usr/local/lib/node_modules
)。这不是个好主意
请注意,/usr/local
中的“usr”代表Unix系统资源我的解决方案:
sudo chown -R $USER /usr/local/lib/node_modules/NAMEOFMODULE
我的情况是:
sudo chown -R $USER /usr/local/lib/node_modules/appium/
但我也遇到了同样的问题,最后
npm cache clean
成功了 我也遇到了同样的问题,试图修复npm相关文件和目录的权限/所有权长达数小时,但没有成功
突然,我发现我有一个
~/.npmrc
文件,其中缓存
项指向一个不存在的目录。删除了缓存
属性以使用默认缓存位置,现在已解决该问题。以下命令应修复权限问题:
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
您可以在此处阅读其他官方推荐的解决方案:
免责声明 我是一名Windows用户。然而,我和我的团队遇到了许多关于npm安装错误的问题 问题 以下是一份经验教训清单,以及一直以来拯救我们的可能根本解决方案:
npm安装--日志级详细信息
rimraf yourDir/node_modules
然后尝试运行:
npm install
警告强>
或者说没有。对命令
rimraf
后面的内容要格外小心。没有警告,没有提示,什么都没有。它只是将目录从地球清洁阶段删除,就好像它从未出现过一样。试试吧,风险自负。这是package.json文件,如果有帮助的话。。。(叹气),nvm,我似乎无法粘贴它。。字符太多。您正在运行什么操作系统如果您也在~/tmp/
或节点用作临时位置的任何位置上执行相同的命令也会有所帮助谢谢您的回答!由于错误消息不好,我省去了一些麻烦。但我会说,npm在默认情况下必须这样做,因为我很确定我自己没有在root下安装它。而且,为了完整性,你必须先吃一顿。npmGlad,我可以帮你:)而且,抓得好!我会修改我的回答说,救命!谢谢你投票,因为这确实对我有用,所以我很荣幸和感谢你。我正在部署到生产环境中,用户甚至没有一个.npm目录(无论如何,我都可以找到)在ChromeOS上与“chronos”用户一起工作。我可以通过指定sudo-u someUser-I
来解决这个问题,这将启动一个新的登录shell。我进一步研究了这个问题,npm中的缓存代码使用了npm.cache变量,我猜它默认为$HOME/.npm/
。sudo也可以根据配置和命令行选项的存在与否,对HOME变量的设置有不同的行为。为我工作,谢谢!我的node_modules文件夹位于另一个位置,也许这会帮助其他人sudo chown-R`whoami`/usr/lib/node_modules/
奇怪的是,递归chown
没有更改权限
npm install rimraf -g
rimraf yourDir/node_modules
npm install