node.js - 如何解决 nodejs 包中的依赖关系
问题描述
我从 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://git@github.com:user/repo.git#ref"
}
但这似乎没有任何效果:
错误:找不到模块“@castlelemongrab/ioh”
我应该如何解决?我尝试进入node_modules
目录并将库git clone
-ing到文件夹中,但这也导致了一些错误:ioh
@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
这是避免冲突的有效且安全的方法吗?
解决方案
解决方案是将缺少的git clone
模块放入 node_modules ,然后放入and 。rm -rf
.git
.gitignore
通过反复试验弄清楚了这一点。如果有人有更完整和更明智的答案,请随时添加。
推荐阅读
- c - 如何使客户端服务器套接字程序异步?
- c++ - 无法使用 mysql_real_connect() 连接到 mysql 服务器
- jenkins - 如何从同一个 Jenkins 构建管道打包多个 MSI
- c++ - C++ CppUnitTestFramework 构建后运行测试
- apache-kafka - Kafka Connect - 如何使用转换自定义 json
- javascript - 如何在类似于 pandas style.bar 的 DataTable 中放置百分比条
- c# - 如何填充 Web 表单以导入数据
- ios - 如何让背景图像无限循环
- aurelia - Aurelia 非 html-only 自定义元素 notrendering
- winforms - 如何将我的表单应用程序发布到 Internet?