如何将叉状GitHub存储库中的功能分支加载到我的应用程序中?

时间:2018-09-04 19:13:06

标签: git github npm

这听起来像是一个人不必问的问题,但是过去3个小时我一直在寻找如何做到这一点,我不知道该怎么解决。

这就是我想要做的:

1)从GitHub存储库中派生一个库,我们称其为vue-widget

2)我需要以某种方式在本地计算机上获取文件,大多数文档都说git clone https://www.github.com/username/vue-widget.git

我的问题立即在这里开始,因为我不知道如何将库加载到我的项目中。我正在尝试:

import Widget from '@username/vue-widget';

让我很沮丧的部分是,我可以找到的所有帮助文档都被编写为好像我在进行1个字符的更改,然后提交请求请求,但是我正在做潜在的广泛修改,因此我需要在我的应用程序中运行修改后的功能分支。 我找不到方法。

我从NPM找到了一些文档,这些文档表明我也许可以使用作用域软件包,但是我不知道是否需要这样做。我真的需要派生一个项目,然后在NPM上以我自己的名字发布它吗?还是有更快,更简单的方法?

我也了解我可以在导入中包含哈希,例如:

import Widget from '@username/vue-widget#ose847vg6seo5489ve4e45n';

我对如何从叉式存储库中的功能分支导入Widget感到迷茫。我想知道最普通和惯用的方式是什么。

我的期望是,有一种方法可以克隆派生的仓库,创建功能分支,将其加载到我的应用程序中,对其进行修改,然后在准备就绪时提交拉取请求。

  

[edit]:我的问题是我正在派生的库在.gitignore文件中有/dist文件夹,因此由于未构建这些文件,因此我的安装无法正确初始化。

解决方案是从.gitignore文件中删除/dist,然后运行:

npm run build
git add .
git commit -m "removed /dist from gitignore"
git push origin featureA

然后,在您试图将派生库放入的项目中,执行Max显示的解决方案。就我而言,我将此添加到了package.json文件中,然后运行了npm install

"vue-widget": "username/vue-widget#featureA"

以下是一些有用的链接,这些链接使我花了一段时间才发现:

How to install a private NPM module without my own registry?

npm install private github repositories by dependency in package.json

https://docs.npmjs.com/files/package.json#git-urls-as-dependencies

这是为我真正解决了这个问题的

npm install and build of forked github repo

请务必阅读以下注释,因为有一些关于npm link的不错的URL可能在情况上有用。

1 个答案:

答案 0 :(得分:2)

如果您可以从叉式仓库中安装,则可以按照以下步骤操作

npm install --save git+https://git@github.com/[username]/[package name].git

如果需要本地链接模块,则可以执行以下操作。使用npm链接。 The docs are here

  1. 进入您正在本地处理的项目,然后从npm注册表中npm i --save要使用的模块。
  2. 现在,在本地克隆所需的分叉存储库。不要忘记npm i该模块的依赖性。
  3. 在该分支目录中运行npm link。这应该获取那些分叉的文件,并将它们链接到本地​​参考。每当您要在另一个本地项目中看到该本地模块中的更改或切换分支时,都必须运行npm link
  4. 现在转到本地正在处理的项目并运行npm link [module you forked and cloned locally]
  5. 重新启动项目,您应该会看到更改。

npm link可能有点挑剔,但是当您运行第4步时,您应该会看到本地链接文件的文件路径。