NPM:从Github URL直接安装时缺少dist和src目录

34
我正在使用的npm包已在github上被fork并修复了一些错误,我现在想在我的项目中使用fork后的代码,直到合并fork。在我的package.json中,我将依赖项的引用从例如“cool-package”:“^0.10.0”更改为“cool-package”:“git://github.com/developer-who-forked/cool-package.git”,但是这不起作用。如果我更新了package.json并运行npm install,然后进入node_modules/cool-package/,我看不到任何/src文件夹或/dist文件夹(通过正常的npm安装的所有其他模块似乎都至少有一个/dist文件夹)。我只看到一个/example文件夹和一个/test文件夹,以及一个package.json和一个README.md。如果我通过包含“cool-package”:“^0.10.0”的方式安装包,则会存在src/和dist/文件夹。被fork的repo或它被fork的原始repo没有/dist文件夹 - 它实际上在.gitignore文件中。因此,我认为在尝试直接访问github repos时,缺少某些构建步骤来创建/dist文件。

1
你也遇到了同样的问题吗?解决了吗? - paqash
4
如果你在 package.json 中引用的 git 存储库中没有 /dist 文件夹,那么解决方法如下。首先本地克隆该 git 存储库,然后在该克隆的存储库中运行 npm install,接着运行 npm run build(或者其他构建命令,这些命令将在 README 文件中提到)。现在退出该存储库并切换到你正在工作的存储库中,即使用刚刚克隆和构建的依赖项的存储库。从这里开始,你可以按以下方式运行本地 npm install:npm install /path/to/dependency/ (例如,npm install ../cool-package/)。 - Tech 75
2
或者,如果您拥有 package.json 中引用的 repo 的权限,则可以执行此操作。在本地克隆 repo,运行 npm install 和 npm run build。确保 /dist 不在克隆的 repo 的 .gitignore 文件中,然后 git add /dist 文件夹和更新的 .gitignore 文件,提交并推送到远程 repo。现在,该 repo 将具有 /dist 文件夹,因此您的 package.json 将安装 .dist 文件夹,这正是您所需的。希望这些都有所帮助。 - Tech 75
1
@Tech75 请考虑将此作为答案提交,它对我很有帮助!(在我的情况下,我必须运行 npm run-script build,也许这对 @DFB 有帮助?) - robx
@Tech75的评论应该被接受为答案。对我有用!谢谢! - Ardee Aram
显示剩余2条评论
3个回答

0

根据评论刚回答了这个问题:


我运行了npm run-script build,帮了我一个大忙!


0

开发人员可能已将这些目录添加到 .gitignore 中。既然您已经 forked 了它们,您应该可以安全地执行以下操作:

  1. .gitignore 中删除这些行
  2. 重新构建包
  3. 将更新推送到您的 forked 存储库
  4. 重新安装

如果您希望将您的 fork 合并,则需要撤消这些更改。最好将这些更改保留在单独的分支中。

顺便说一下,现在您可以使用 ORGANIZATION_NAME/PACKAGE_NAME 语法直接从 git 安装,如果需要按标签等方式进行定位,则还具有其他功能。

NPM 文档 GitHub 文档


0

对我有用的方法是:

  1. 提交 /dist 到 gh
  2. 运行 npm install {username}/{repo}.git 而不是手动将记录添加到 package.json

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接