这感觉就像一个人不应该问的问题,但我一直在寻找过去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
。我想知道最常见和惯用的方法是什么。
我的期望是有一种方法可以克隆我的分叉仓库,创建一个功能分支,将其加载到我的应用程序中,修改它,然后在准备就绪时提交拉取请求。
[编辑]:我的问题是我正在使用的库在.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
的好网址可能非常有用。
如果您可以从分叉回购安装,您可以在下面执行此操作
npm install --save git+https://[email protected]/[username]/[package name].git
如果需要在本地链接模块,可以执行以下操作。使用npm链接。 The docs are here。
npm i --save
你想要从npm注册表使用的模块。npm i
那个模块的依赖关系。npm link
。这应该采取分叉文件并将它们链接到本地引用。每次在本地模块中进行更改或切换分支时,您希望在另一个本地项目中看到,您必须运行npm link
。npm link [module you forked and cloned locally]
npm link
可能有点挑剔,但是当你运行第4步时,你应该看到本地链接文件的文件路径。