Как загрузить функциональную ветку из разветвленного репозитория GitHub в мое приложение? - PullRequest
0 голосов
/ 04 сентября 2018

Это похоже на вопрос, который человеку не нужно задавать, но последние 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 из функциональной ветки в моем раздвоенном репо. Я хочу знать, каков наиболее распространенный и идиоматический способ сделать это.

Я ожидаю, что есть способ, которым я могу клонировать свое разветвленное репо, создать ветку объектов, загрузить ее в мое приложение, изменить ее и затем отправить запрос на извлечение, когда он будет готов.

[править]: Моя проблема заключалась в том, что библиотека, которую я разветвлял, содержала папку /dist в файле .gitignore, поэтому моя установка не смогла правильно инициализироваться из-за того, что эти файлы не были собраны.

Решение состоит в том, чтобы удалить /dist из файла .gitignore, а затем выполнить:

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

Затем, вернувшись в проект, в который вы пытаетесь получить разветвленную библиотеку, выполните решение, которое показал Макс. В моем случае я добавил это в свой файл package.json и затем запустил npm install:

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

Вот несколько полезных ссылок, которые мне понадобились, чтобы раскрыть:

Как установить частный модуль NPM без моего собственного реестра?

npm установить частные репозитории github по зависимости в package.json

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

Это тот, кто действительно решил это для меня:

npm установка и сборка разветвленного репозитория github

Обязательно прочитайте комментарии ниже, так как есть пара хороших URL-адресов о npm link, которые могут быть полезны в ситуациях.

1 Ответ

0 голосов
/ 04 сентября 2018

Если вы можете установить с разветвленного репо, вы можете сделать это следующим образом

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

Если вам нужно связать модуль локально, вы можете сделать следующее. Используйте ссылку npm. Документы здесь .

  1. Перейдите в проект, над которым вы работаете локально, и npm i --save модуль, который вы хотите использовать из реестра npm.
  2. Теперь локально клонируйте разветвленный репо, который вы хотите. Не забудьте npm i зависимости этого модуля.
  3. В этом разветвленном каталоге запустите npm link. Это должно взять эти разветвленные файлы и связать их с локальной ссылкой. Каждый раз, когда у вас есть изменения или переключение ветвей в этом локальном модуле, которые вы хотите увидеть в другом локальном проекте, вы должны запустить npm link.
  4. Теперь перейдите к проекту, над которым вы работаете локально, и запустите npm link [module you forked and cloned locally]
  5. Перезапустите проект, и вы должны увидеть изменения.

npm link может быть немного привередливым, но когда вы выполните шаг 4, вы должны увидеть путь к файлам локально связанных файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...