Можете ли вы разместить частный репозиторий для своей организации для использования с npm?

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

Ответ 1

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

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

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

Да!

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

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

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

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

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

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

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

Ответ 2

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

{
    "name": "my-app",
    "dependencies": {
        "private-repo": "git+ssh://[email protected]:my-app.git#v0.0.1",
    }
}

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

Ответ 3

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

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

Sinopia может использоваться для:

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

Ответ 4

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

Ответ 5

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

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

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

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

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

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

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

UPDATE

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

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

(отказ от ответственности: даже не удаленно связанный с npm, Inc.)

Ответ 7

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

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

Ответ 8

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

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

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

    npm install * tarball_url *

Ответ 9

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

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

Ответ 10

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

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

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

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

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

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

Ответ 11

мы используем Sonatype Nexus, версия - Nexus Repository ManagerOSS 3.6.1-02. И я уверен, что он поддерживает частный репозиторий NPM и кэширует пакет.

enter image description here

Ответ 12

Этот пост рассказывает о том, как настроить частный реестр

  • убедитесь, что в вашей системе установлен couchdb.
  • Реплицируя npmjs.org, используйте следующую команду

    curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true}' -H "Content-Type: application/json"
    

Заметьте, что в команде есть "continuous":true, это использует API-интерфейс CouchDBs _changes и будет вызывать любые новые изменения, когда этот API будет уведомлен.

Если вы хотите остановить эти репликации, вы можете легко добавить "cancel":true. Тогда script будет

    curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true, "cancel":true}' -H "Content-Type: application/json"

Затем перейдите в npmjs.org readme для установки npm (убедитесь, что установлены nodejs и git). Удар - все шаги

git clone git://github.com/isaacs/npmjs.org.git
cd npmjs.org
sudo npm install -g couchapp 
npm install couchapp 
npm install semver 
couchapp push registry/app.js http://localhost:5984/registry 
couchapp push www/app.js http://localhost:5984/registry