gpt4 book ai didi

node.js - 删除模块目录后 npm install 不再可能

转载 作者:搜寻专家 更新时间:2023-10-31 23:58:37 25 4
gpt4 key购买 nike

所以我想帮忙,并 fork 了一个 Node-RED 模块来做一些小贡献,但后来迷失了如何让 Node-RED 运行我的 fork (用于测试)而不是打包版本。然后我了解到 npm 能够从 Github URL 安装,这很好,但它不起作用,因为我已经安装了该模块。然后我发现我也卸载不了

npm uninstall original-module
npm ERR! path /home/nodered/.node-red/node_modules/original-module/package.json
npm ERR! code ELOOP
npm ERR! errno -40
npm ERR! syscall open
npm ERR! ELOOP: too many symbolic links encountered, open '/home/nodered/.node-red/node_modules/original-module/package.json'

所以我沮丧地删除了模块的目录,却发现自己无法向前或向后移动。 npm install https://github.com/me/forkedmodule 失败

npm ERR! code 128
npm ERR! Command failed: /usr/bin/git clone --depth=1 -q -b master https://github.com/me/forkedmodule.git /root/.npm/_cacache/tmp/git-clone-d31dc53b
npm ERR! fatal: could not create leading directories of '/root/.npm/_cacache/tmp/git-clone-d31dc53b': Permission denied
npm ERR!

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2017-08-22T01_07_18_257Z-debug.log

并尝试使用 npm install original-module 安装原始模块失败并显示

npm ERR! code ENOLOCAL
npm ERR! Could not install from "node_modules/original-module" as it does not contain a package.json file.

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2017-08-22T01_09_56_127Z-debug.log

您可能已经猜到了,我是 Node.js、Node-RED 和 npm 的新手,但我无法自拔,所以不得不寻求帮助! npm 似乎在寻找属于我要安装的包的 package.json 文件的本地副本,这对我来说似乎很荒谬?

编辑:我应该补充一点,上面的命令都是以 root 身份运行的。

最佳答案

好的,找到了一个解决方案,但不确定它是否是最好的!

在“项目”目录(/home/nodered/.nodered 在我的例子中)有一个 package-lock.json 文件,它列出了项目。在那里我找到了我删除的 original-module 的条目,之后我可以使用 npm install original-module “正常”安装包。

然后为了解决从 GitHub URL 安装时的权限问题,我发现我需要使用 su - nodered 模拟“nodered”用户(在我的例子中是无密码用户)。作为“nodered” npm install https://github.com/me/forkedmodule 成功,没有任何错误。有点好奇,因为我之前曾尝试以 root 用户身份执行此操作,但遇到了权限错误,但你去吧。我还借此机会 chown -R 将项目的 node_modules 目录添加到 nodered:nodered,因为我发现这有点乱。

以后,我会尽量记住首先su - 到我的 Node 用户,然后导航到项目根目录(同样,/home/nodered/.node-red 在我的例子中)在运行 npm install 任何东西之前。希望这将避免任何进一步的问题。哦,给那些只想对 GitHub 上托管的模块做出一些快速更改的其他人的注意事项:要“拉取”更改,您只需运行 npm install https://github.com/me/forkedmodule 再次 - npm 似乎没有提供任何专用的“更新”方法。

关于node.js - 删除模块目录后 npm install 不再可能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45807592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com