Установите зависимости с помощью npm из частного репозитория gitlab - PullRequest
0 голосов
/ 28 января 2019

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

Я попытался добавить пакет в файл package.json

"dependencies": {
    "package_name": "git+https://<deploy-token-name>:<deploy-token>@gitlab.domain.com/group/repo.git"
}

И затем установить с помощью npmно, похоже, он не работает на маркере развертывания, но трудно сказать, потому что журнал не очень полезен, и тогда все наше развертывание gitlab на мгновение останавливается #fun

29 error
29 error undefined
29 error exited with error code: 128

Я также пыталсяс токеном частного доступа

"package-name": "https://oauth2:<access-token>@gitlab.domain.com/group/repo.git"

Это приводит к реальной ошибке, которую я могу понять, за исключением того, что ошибка говорит о том, что в репозитории нет package.json, но, скорее всего, есть

npm ERR! package.json Non-registry package missing package.json: package-name@https://oauth2:<access-token>@gitlab.domain.com/group/repo.git.
npm ERR! package.json npm can't find a package.json file in your current directory.

Я пробовал с ssh (с настройкой ключа ssh, которая работает для коммитов и т. Д.)

git+ssh://git@my-domain.com:my-project/my-repo#my-branch

И это приводит к ошибке

npm ERR! premature close

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

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

У меня та же проблема, и мне удалось ее исправить.В репозитории gitlab, который я хотел установить, не было файла package.json.

0 голосов
/ 28 января 2019

Вам следует использовать Scopes, если вы хотите установить частные пакеты npm.

Вы можете определить область в файле .npmrc вашего репозитория.

пример .npmrc в репозитории вашего приложения:

@scopeName:registry=http://private-npm-registry/
always-auth=true

Таким образом, npm может обрабатывать такие зависимости как: @ scopeName / yourprivateModule @ version

Токен для доступа к этому репо долженне должны быть включены в ваш репозиторий, должны быть настроены в ваших домашних папках .npmrc.Npm сначала будет искать в текущей папке файл .npmrc, а затем - в вашей домашней папке.Настроенные параметры будут объединены.

Но этот подход хорош только для вас, если вы публикуете свой пакет в частном реестре npm.https://docs.gitlab.com/ee/user/project/packages/npm_registry.html#authenticating-with-an-oauth-token

Итак, подведем итог:

  • сконфигурируйте свою область в файле .npmrc вашего репозитория
  • настройте токен доступа в файле .npmrc вашей средыuser
  • добавить зависимую область в ваш пакет.json

    например

npm i @scopeName/yourprivateModule@version

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