Пропустить зависимости GitHub при установке npm - PullRequest
1 голос
/ 22 марта 2019

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

Для простоты, скажем, мой dependencies из package.json выглядит следующим образом (на самом деле существует больше зависимостей, но они не важны):

"dependencies": {
  "pdf2json": "git://github.com/jmdeejay/pdf2json.git#a384122f",
  "phone": "~2.3.7",
},

phone может быть установлен без проблем, но pdf2json - нет.

Когда я запускаю npm install, я получаю следующую ошибку:

[10:21:19][Step 1/4] npm ERR! C:\Program Files\Git\cmd\git.EXE ls-remote -h -t git://github.com/jmdeejay/pdf2json.git
[10:21:19][Step 1/4] npm ERR! 
[10:21:19][Step 1/4] npm ERR! fatal: unable to connect to github.com:
[10:21:19][Step 1/4] npm ERR! github.com[0: 192.30.253.112]: errno=No such file or directory
[10:21:19][Step 1/4] npm ERR! github.com[1: 192.30.253.113]: errno=No such file or directory
[10:21:19][Step 1/4] npm ERR! 
[10:21:19][Step 1/4] npm ERR! 
[10:21:19][Step 1/4] npm ERR! exited with error code: 128

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

Я просмотрел документацию npm-config и npm install , но не смог найти флаг для того, что мне нужно. Я хотел бы знать: Есть ли способ пропустить зависимости из других источников, кроме NPMrepository, или продолжить установку зависимостей в случае сбоя одного из них?

Мне не нужно анализировать этот пакет, так как он косвенно принадлежит моей организации, поэтому я вполне мог бы пропустить его, но я не могу просто удалить его из package.json, потому что он используется для реальной установки приложение в других сценариях.

Редактировать

Существует комментарий, в котором говорится, что использование git:// может быть не очень хорошим решением, но согласно документации NPM, это должно работать. Следующий снимок экрана взят из npm документации , а четвертая строка соответствует моей конфигурации

NPM Install with Git

Я могу подтвердить, что git:// не является опечаткой, это напечатано таким образом в package.json проекта, который работает. У меня также нет возможности изменить этот файл конфигурации, так как у меня нет права собственности на этот проект.

1 Ответ

0 голосов
/ 27 марта 2019

Мне неловко отвечать на мой вопрос, но я нашел решение с помощью комментария @ evolutionbox.

Я не смог изменить файл package.json, но в итоге я сделал это в своем сценарии:

git config --global url."https://".insteadOf "git://"
npm install
git config --global url."git://".insteadOf "https://"

Таким образом, я временно изменяю свою конфигурацию на что-то, что работает (хотя, согласно документации npm, git:// должно работать)

...