删除模块目录后 npm install 不再可能
npm install no longer possible after deleting module directory
所以我想帮忙,并分叉了一个 Node-RED 模块来做一些小贡献,但后来迷路了如何让 Node-RED 到 运行 我的分叉(用于测试)而不是打包版本。然后我了解到 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。
好的,找到了一个解决方案,但不确定它是否是最好的!
在 "project" 目录(在我的例子中是 /home/nodered/.nodered
)有一个 package-lock.json
文件,其中列出了项目使用的包。在那里我找到了一个 original-module
的条目,我删除了它,之后我就可以安装包 "normally" 和 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 -
我的节点用户,然后在 运行 之前导航到项目根目录(同样,在我的例子中是 /home/nodered/.node-red
) npm install
任何东西。希望这将避免任何进一步的问题。哦,给那些只想对 GitHub 上托管的模块做出一些快速更改的其他人的注意事项:要 "pull" 进行更改,您只需再次 运行 npm install https://github.com/me/forkedmodule
- npm
似乎没有提供任何专用的 "update" 方法。
我有同样的问题,在我的情况下,解决方案是删除包-lock.json,删除node_modules,然后重新安装 npm 模块。
所以我想帮忙,并分叉了一个 Node-RED 模块来做一些小贡献,但后来迷路了如何让 Node-RED 到 运行 我的分叉(用于测试)而不是打包版本。然后我了解到 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。
好的,找到了一个解决方案,但不确定它是否是最好的!
在 "project" 目录(在我的例子中是 /home/nodered/.nodered
)有一个 package-lock.json
文件,其中列出了项目使用的包。在那里我找到了一个 original-module
的条目,我删除了它,之后我就可以安装包 "normally" 和 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 -
我的节点用户,然后在 运行 之前导航到项目根目录(同样,在我的例子中是 /home/nodered/.node-red
) npm install
任何东西。希望这将避免任何进一步的问题。哦,给那些只想对 GitHub 上托管的模块做出一些快速更改的其他人的注意事项:要 "pull" 进行更改,您只需再次 运行 npm install https://github.com/me/forkedmodule
- npm
似乎没有提供任何专用的 "update" 方法。
我有同样的问题,在我的情况下,解决方案是删除包-lock.json,删除node_modules,然后重新安装 npm 模块。