如何解决 nodejs 包中的依赖项

How to resolve dependencies in a nodejs package

提问人:Hack-R 提问时间:10/7/2020 最后编辑:Hack-R 更新时间:10/8/2020 访问量:1376

问:

我已经从 Github 下载了一个 nodejs 项目,编辑了源代码以添加缺失的功能,现在我正在尝试将其编译为可执行文件或以未编译的方式运行它()。在这两种情况下,我都会收到消息,说它找不到它的依赖项。 这不是我的正常编程语言,所以我不熟悉节点依赖项的工作原理。node main.js

有问题的依赖项是其他节点包。我安装了它们,但这没有帮助。npm install -g

在文件中,它们描述如下:package.json

  "dependencies": {
    "@castlelemongrab/ioh": "^0.0.4",
    "@castlelemongrab/strr": "^0.0.1",
    "bent": "^7.3.6",
    "jsDump": "^1.1.0",
    "yargs": "^15.3.1"
  },

警告消息将以开头的依赖项指定为缺少的依赖项。虽然这只是一个警告,但当您尝试使用它时,该程序无法运行并发出相同的消息,因此它实际上是一个错误。我发现这篇 Stackoverflow 帖子提到您可以像这样定义依赖项:@

"dependencies": {
  "public": "git://github.com/user/repo.git#ref", 
  "private": "git+ssh://[email protected]:user/repo.git#ref"
}

但这似乎没有任何效果:

错误:找不到模块“@castlelemongrab/ioh”

我应该如何解决?我尝试进入目录并将库放入文件夹中,但这也导致了一些错误:node_modulesgit cloneioh@castlelemongrab

npm ERR! code EISGIT
npm ERR! path C:\...\node_modules\@castlelemongrab\ioh
npm ERR! git C:\...\node_modules\@castlelemongrab\ioh: Appears to be a git repo or submodule.
npm ERR! git     C:\...\node_modules\@castlelemongrab\ioh
npm ERR! git Refusing to remove it. Update manually,
npm ERR! git or move it out of the way first.

此外,由于我的系统上安装了此软件包的生产版本,并且我不想覆盖它,因此如果我更改“名称”字段,这是避免冲突的有效且安全的方法吗?package.json

节点.js npm 依赖项

评论


答:

1赞 Hack-R 10/8/2020 #1

解决方案是将缺少的模块转换为 node_modules,然后转到 和 。git clonerm -rf.git.gitignore

通过反复试验弄清楚了这一点。如果有人有更完整、更明智的答案,请随时添加。