2016-11-10 6 views
34

Это не совсем новый вопрос, но я давно искал хорошее время, и у меня возникли проблемы с поиском решения.npm установка и сборка разветвленного github repo

Я использую модуль для моего углового приложения, называемый угловым переводом. Тем не менее, мне пришлось внести несколько небольших изменений в исходный код, чтобы все работало так, как хотелось бы, и теперь я хочу сохранить эти изменения на npm install. Коллега предположил, что я развил репо исходного кода и указывал на свое раздвоенное репо в качестве зависимости, которое я пытался этим способом, например.

npm install https://github.com/myRepo/angular-translate 
npm install https://github.com/myRepo/angular-translate/archive/master.tar.gz 

Первый дает мне такую ​​директорию без сборки. Просто package.json, .npmignore, и некоторые уценки файлы

-angular-translate 
    .npmignore 
    .nvmrc 
    CHANGELOG.md 
    package.json 
    etc 

Второй npm install дает мне полную репо, но опять же я не получаю сборки, как, когда я использую команду npm install angular-translate. Я видел некоторые проблемы с запуском сценария prepublish, но я не уверен, как это сделать при установке всех модулей. Я также попытался опубликовать вилку в качестве своего собственного модуля в реестре npm, но снова не получаю никакой сборки, и я не уверен, что это правильно ...

Прошу прощения за мое незнание на тема. У меня нет большого опыта работы с npm. Хотелось бы получить некоторые отзывы по этому вопросу. Похоже, что это может быть достаточно распространенной проблемой, когда необходимо внести изменения в исходный код пакета? Может быть, есть лучшее решение? Заранее спасибо за вашу помощь.

ответ

38

Try npm install <ghusername>/<repoName>, где <ghUsername> ваше имя пользователя GitHub (без @) и <repoName> это имя хранилища. Это должно правильно установить его. Скорее всего, вы захотите использовать флаг --save или --save-dev с командой установки, чтобы сохранить зависимость в вашем package.json.

Если это не работает, проверьте содержимое вашего .npmignore файла.

Не паникуйте, если команда установки занимает много времени; установка из репозитория git происходит медленнее, чем установка из реестра npm.


Edit:

Ваша проблема заключается в том, что в вашем случае, dist/ не стремится к репо (так как он находится в .gitignore). Именно там живет реальный код. dist/ построен из файлов в src/, прежде чем пакет будет опубликован в реестре npm, но dist/ никогда не привержен репо.

Это некрасиво, но в этом случае вам придется удалить dist/ из .gitignore, а затем запустить:

npm run build 
git add . 
git commit 
git push 

(Убедитесь, что вы запустили npm install первый)

Вы тогда должны быть в состоянии установить из github.

Возможно, существует другой способ сделать это, используя сценарий postinstall, но я не уверен, что это возможно; Я никогда не пробовал.

+0

Спасибо за ответ, Райан. Дала попытку, но я получил тот же результат, что и 1-я установка npm. Затем я попытался удалить файл .npmignore, и я получаю весь репо, как и второй результат. Проблема все еще остается в том, что сборка не происходит. – hughesjmh

+0

@hughesjmh Странно. Каков фактический URL-адрес репозитория? Я хотел бы попробовать это сам. – RyanZim

+0

Хорошо, теперь я вижу. Я отредактировал свой ответ. – RyanZim

Смежные вопросы