我一直在try 在我的软件包上运行npm安装.json文件,但我遇到了很多麻烦.它一直在对我所有的依赖项说"错误:try 解锁尚未锁定的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)

如果我try 以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'

我最近更新了我的 node 和npm安装.所以这可能与此有关.此外,我的大部分开发工作都是在办公室进行的,而今天我在VPN上工作,所以这可能也与此有关.

有什么 idea 吗?

推荐答案

根据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电脑上(和我一样),在运行这些命令后仍然看到错误,那么运行最后一个命令,你应该会很好.(建议您在执行此操作之前try 测试.我不喜欢更改整个/usr/local目录的权限,除非看起来确实有必要!)

sudo chown -R $USER /usr/local

Node.js相关问答推荐

如何解决TypeError:requ.isAuthenticated不是函数错误?

如何将信号从终端窗口发送到运行在Raspberry Pi上的Puppeteer/Node.js上的webscraper

CloudTasksClient在Firebase Function % s onDocumentCreated中实例化时导致错误

如何使用Node.js、Express和Mongoose创建多个API

在Nest.Js中,如何发送带有表单数据的正文请求并应用正文请求验证.附加的文件是可选的

如何使用多个参数完成

在对象的嵌套数组中使用$lookup,创建多个记录作为响应,mongodb

仅在一次查询中 MongoDB 上最近的一对位置

为什么 Cors 在 NodeJS 中不起作用

mongoose 7.0.3 使用运算符 $and 严格搜索日期

看起来这段代码try GET 请求发送的值变为空白

JAVASCRIPT:foreach 循环后的空数组

'{ id: string; 类型的参数}' 不可分配给FindOneOptions类型的参数

部署云功能 Firebase/Stripe 时出错

如何promise AWS JavaScript 开发工具包?

AngularJS +sails.js

如何让should.be.false语法通过 jslint?

node.js 中存储的模块变量在什么范围内?

从 node.js 连接到 mongodb 时出现 ECONNREFUSED 错误

Mongoose:模式与模型?