我一直在试图运行NPM安装在我的package.json文件,但我有很多的麻烦。 它口口声声说“错误:尝试解锁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_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,所以也许这有什么用它做了。
有任何想法吗?
Answer 1:
按photusenigma于: https://github.com/npm/npm/issues/4815
在终端窗口中运行以下命令(注意 - 不要更换$ USER一部分......那是一个linux命令,获取用户!):
sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/local/lib/node_modules
......然后......如果你是在Mac上(像我),仍然可以看到运行这些命令后的错误,然后运行这最后一个,你应该是不错的。 (建议您尝试测试你这样做的人之前,我不喜欢改变对整个的/ usr / local目录的权限,除非确实必要!)
sudo chown -R $USER /usr/local
Answer 2:
我有一个同事今天下午的工作,并计算出了什么问题。 在我的主目录我的“.npm”文件夹是由root用户,而不是自己拥有。 我不知道发生了什么事导致这一点。 也许我安装的节点或NPM作为根admin在一个点上。 在任何情况下,我只是跑sudo chown -R [username] .npm
,我终于能够运行npm install
从我的项目再次命令!
Answer 3:
在我的情况下,问题是调用NPM与不具有主目录,因此,例如下面的命令将失败用户:
sudo -u someUser npm install
解决的办法是提供一个HOME目录,其中someUser
有写权限:
sudo -u someUser HOME=/some/directory npm install
Answer 4:
有同样的问题,并通过改变persmissions按照接受的答案固定它:
sudo chown -R $USER ~/.npm
然而,应避免该第二命令,因为它降级的系统资源(的权限sudo chown -R $USER /usr/local/lib/node_modules
)。 这不是一个好主意。
备案:在“USR” /usr/local
代表的Unix系统资源 。
Answer 5:
这一切都不为我工作。 我不得不通过执行以下操作以root身份运行字面上:
sudo su -
sudo npm install forever -g
然后包上安装Linux操作系统Ubuntu 14.04。
Answer 6:
下面的命令应该可以解决权限问题:
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
你可以阅读这里的另一个正式推荐的解决方案:
https://docs.npmjs.com/getting-started/fixing-npm-permissions
Answer 7:
我的解决方案:
sudo chown -R $USER /usr/local/lib/node_modules/NAMEOFMODULE
在我的情况是:
sudo chown -R $USER /usr/local/lib/node_modules/appium/
但我得到了同样的问题,最后经过
npm cache clean
有效 !
Answer 8:
我有同样的问题,并试图解决的NPM相关的文件和目录小时权限/所有权,但有与没有运气。
突然,我发现我不得不~/.npmrc
与文件cache
项指向一个不存在的目录。 移除cache
使用默认的缓存位置财产,现在它的解决。
Answer 9:
放弃
我是一个Windows用户。 然而,我的团队和我所遇到的一些关于NPM installaion错误的问题。
问题
以下是总结经验教训清单,并可能彻底的解决方案,一直救了我们:
- node_modules,所述NPM本地安装的目录变得从修改由OS的缺点,如不能处理超过255个字符的路径保护。
- 如果该文件夹是一个命令行工具仍可能出现,如果在浏览器中,试图访问它时,给出了一些权限错误的文件夹存在的部件删除。
- 根据您的防病毒软件和/或本地策略管理器您可以创建文件夹node_modules,后来降级或访问权限,它产生了许多的安装错误。
启用NPM日志以获得更进一步的认识与可能出现的问题:
npm install --loglevel verbose
基
安装rimraf全球
npm install rimraf -g
在node_modules运行rimraf:
rimraf yourDir/node_modules
然后,尝试运行:
npm install
警告!
或者缺乏那里。 要格外小心什么如下命令rimraf
。 没有警告,没有提示,没有什么。 它只是删除从地上干净的阶段目录,就好像它从来没有在那里。 试试在你自己的风险。
文章来源: NPM cannot install dependencies - Attempt to unlock something which hasn't been locked