当前位置: 首页 > 面试题库 >

NPM无法安装依赖项-尝试解锁尚未锁定的内容

桓风史
2023-03-14
问题内容

我一直试图在我的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_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,所以也许与此有关。

有任何想法吗?


问题答案:

根据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(如我),则在运行这些命令后仍然看到错误,请运行最后一个,您应该会很好。(建议您在进行此操作之前先进行测试。除非确实有必要,否则我不喜欢更改ENTIRE
/ usr / local目录的权限!)

sudo chown -R $USER /usr/local


 类似资料:
  • 我们的构建管道是- 然而,这意味着我们的工件包含了所有的开发依赖。如果我们执行,我们将失去devDependence,但是将失败。 我们如何生成一个没有依赖性的测试工件?我们是否只需要相信,我们的应用程序在测试完devdependency后,会在没有devdependency的情况下运行? 额外问题:应如何适应此工作流?

  • 我正在将一个组件打包到jar文件中,并试图将其安装到另一个系统中进行开发。我正在使用maven安装该文件,如下所示(摘自https://maven.apache.org/plugins/maven-install-plugin/examples/custom-pom-installation.html): Maven报告jar已成功安装: 我看到jar和pom文件都放在/home/user/中。m

  • 试图遵循O'Reilly的“编程Scala”一书中的示例。下载并安装sbt,使用:brew install sbt@1似乎已成功。然后在命令行输入“sbt”或“sbt-v”(在Mac上bash)后,我会得到: 格伦

  • 安装放大器后,它工作,并能够签署。但在重新启动tomcat服务器或系统(系统会自动重新启动服务器)后,我无法以管理员或共享中的其他用户身份再次登录。Login返回错误:“您的身份验证详细信息未被识别或Alfresco此时可能不可用” 导航到HTTP://127.0.0.1:8080/alfresco显示以下错误:HTTP Status 404-/alfresco type Status repor

  • 问题内容: 问题。 Gradle依赖管理使得: 没有简便的方法来检查依赖项更新的可用性(仅使用某些第三方插件,如ben-manes / gradle-versions-plugin)并下载更新以替换旧版本; 从远程存储库下载依赖项工件,然后将其存储在gradle缓存中,并在后续构建中重用;但是项目的成功编译必须不依赖于与Internet的连接,远程存储库的可用性以及这些存储库中特定版本的依赖项。

  • 问题。 分级依赖项管理是这样进行的: 检查依赖更新的可用性(仅使用一些第三方插件,如Ben-Manes/Gradle-Versions-Plugin),并下载替换旧版本的更新是不容易的; 依赖项构件从远程存储库下载,然后存储在gradle缓存中,并在后续构建中重用;但项目的成功编译不能依赖于与Internet的连接、远程存储库的可用性以及这些存储库中依赖项的特定版本的存在。 null