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