Можете ли вы разместить частный репозиторий для вашей организации для использования с npm? - PullRequest
199 голосов
/ 28 сентября 2011

Npm звучит как отличная платформа для использования в организации, любопытно, возможно ли частное репо, как с Nexus / Maven. В Google ничего не появляется: (

Ответы [ 14 ]

188 голосов
/ 18 октября 2011

https://github.com/isaacs/npmjs.org/: в версии npm v1.0.26 вы можете указать URL-адреса закрытых репозиториев git в качестве зависимости в ваших файлах package.json.Я не использовал это, но хотел бы обратной связи.Вот что вам нужно сделать:

{
    "name": "my-app",
    "dependencies": {
        "private-repo": "git+ssh://git@yourgitserver.com:my-app.git#v0.0.1",
    }
}

В следующем посте об этом говорится: Отладка: Частные модули npm

95 голосов
/ 28 сентября 2011

Я не думаю, что есть простой способ сделать это.

A посмотрите документацию npm говорит нам, что это возможно:

Могу ли я запустить свой личный реестр?

Да!

Самый простой способ - реплицировать базу данных кушеток и использовать тот же (или аналогичный) проектный документ для реализации API.

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

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

РЕДАКТИРОВАТЬ (2017-02-26):

Не совсем новый, но теперь платные планы для размещения частных пакетов на NPM.

За прошедшие годы NPM стал фактором для многих компаний, не являющихся Node.js, также благодаря огромной экосистеме внешнего интерфейса, построенной на NPM. Если ваша компания уже использует Sonatype Nexus для внутреннего размещения Java-проектов, вы также можете использовать его для размещения внутренних пакетов NPM.

Другие опции включают JFrog Artifactory и Inedo ProGet , но я их не использовал.

89 голосов
/ 01 марта 2014

Для этого существует простой в использовании пакет npm. https://www.npmjs.org/package/sinopia

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

Синопия может быть использована для:

  • публиковать собственные приватные пакеты, не раскрывая их публично
  • кешировать только общедоступные пакеты, которые используются (нет необходимости копировать весь публичный реестр)
  • переопределяет общедоступные пакеты измененной версией, созданной для внутреннего использования.
29 голосов
/ 04 июня 2015

14 апреля (2015 г.) были введены npm частных модулей .

Когда вы платите за частные модули, вы можете:

  • Размещайте столько частных пакетов, сколько вы хотите
  • Предоставляйте доступ на чтение или чтение и запись для этих пакетов любому другому платному пользователю
  • Установите и используйте любые пакеты, которые другие платные пользователи дали вам прочитатьдоступ к
  • Сотрудничайте с любыми пакетами, которые другие платные пользователи предоставили вам для записи

Конечно, это не бесплатно - в настоящее время 7 $ в месяц на пользователя.

И это все еще довольно новый сервис.Например, поддержка учетных записей организации отсутствует (по состоянию на июнь 2015 г.):

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

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

ОБНОВЛЕНИЕ

Npm Частные пакеты теперь доступны с планами для обоихотдельные пользователи и организации :

  • Неограниченное количество общедоступных и частных пакетов
  • $ 7 / месяц / разработчик
  • Включает одну область действияимя, основанное на названии организации
  • Публикация и контроль доступа к @ org-name / foo

(заявление об отказе от ответственности: даже удаленно не связано каким-либо образом с npm)

28 голосов
/ 12 июня 2018

Вердаччо - это то, что я искал, и оно заслуживает своего собственного ответа;) Это активно поддерживаемый форк Синопии (высоко одобренный ответ здесь ).Это реестр npm в виде пакета npm , и его можно найти

здесь: https://github.com/verdaccio/verdaccio,
здесь: https://www.verdaccio.org,
здесь:pnpm i -g verdaccio или
здесь: docker run -it --rm --detach --name verdaccio -p 4873:4873 verdaccio/verdaccio

18 голосов
/ 08 декабря 2014

Менеджеры репозитория с поддержкой частных реестров npm:

9 голосов
/ 29 октября 2013

Я думаю, эта тема нуждается в обновлении.Если вы посмотрите на любой из доступных реестров npm, они очень тяжелые и им нужен couchdb.Gemfurry и другим нужно, чтобы вы отключились от публичных репозиториев.Некоторые из npm, такие как shadow-npm, не имеют последних коммитов .

Затем мы нашли Реджи .Он имеет хорошую активность коммитов, чрезвычайно прост в установке и использовании и имеет довольно хорошую поддержку сообщества .Он чрезвычайно легкий, и вам не нужно иметь дело с couchdb и т. Д.

8 голосов
/ 28 сентября 2011

Простите, если я плохо понимаю ваш вопрос, но вот мой ответ:

Вы можете создать частный модуль npm и использовать обычные команды npm для его установки. Большинство пользователей node.js используют git в качестве своего репозитория, но вы можете использовать любой репозиторий, который вам подходит.

  1. В вашем проекте вам понадобится скелет пакета NPM. Наиболее Модули узлов имеют репозитории git, где вы можете посмотреть, как они интегрировать с NPM (файл package.json, я считаю, является частью на этом сайте NPM показано, как сделать пакет npm)
  2. Используйте что-то похожее на Make, чтобы сделать вашу упаковку доступны из Интернета или вашей сети, чтобы поставить его за npm установить загрузки.
  3. Как только ваша посылка сделана, используйте

    npm install * tarball_url *

7 голосов
/ 03 июня 2013

Это самый простой способ, который я знаю - разместить его в облаке с помощью Gemfury частного реестра npm.

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

5 голосов
/ 06 марта 2015

Немного опоздал на вечеринку, но NodeJS (на 14 ноября, я думаю) поддерживает корпоративные репозитории NPM - вы можете узнать больше на их официальном сайте .

Сбеглый взгляд: кажется, что npmE позволяет выполнять сквозное зеркалирование репозитория NPM, то есть он будет искать пакеты в репозитории real NPM, если он не найдет один из ваших внутренних.Кажется очень полезным!

npm Enterprise - это локальное решение для безопасного совместного использования и распространения модулей JavaScript в вашей организации от команды, которая поддерживает npm и общедоступный реестр npm.Он предназначен для групп, которым требуется:

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

npmE - это реестр npm, который работает с тем же стандартным клиентом npm, который вы уже используете, но предоставляет функции, необходимые более крупным организациям, которые в настоящее время с энтузиазмом принимают узел.Он создан npm, Inc., спонсором проекта с открытым исходным кодом npm и хостом общедоступного реестра npm.

К сожалению, он не бесплатный.Вы можете получить пробную версию, но это коммерческое программное обеспечение.Это не очень хорошая вещь для сольных разработчиков, но если вы сольный разработчик, у вас есть GitHub: -)

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