Npm звучит как отличная платформа для использования внутри организации, любопытно, возможно ли частное репо, как с Nexus / Maven. В Google ничего не появляется :(
Npm звучит как отличная платформа для использования внутри организации, любопытно, возможно ли частное репо, как с Nexus / Maven. В Google ничего не появляется :(
Ответы:
Я не думаю, что есть простой способ сделать это.
Взгляд на документацию НПМ говорит нам, что это возможно:
Могу ли я запустить свой личный реестр?
Да!
Самый простой способ - реплицировать базу данных кушетки и использовать один и тот же (или похожий) проектный документ для реализации API.
Если вы установите непрерывную репликацию с официальной CouchDB, а затем установите свою внутреннюю CouchDB в качестве конфигурации реестра, то вы сможете читать любые опубликованные пакеты, в дополнение к вашим личным, и по умолчанию будут публиковать только для внутреннего использования. Если вы затем хотите опубликовать пакет для просмотра всем миром, вы можете просто переопределить
--registry
конфигурацию для этой команды.
В блоге часов также есть отличное руководство по созданию частного репозитория npm .
РЕДАКТИРОВАТЬ (2017-02-26):
Не совсем новый, но теперь есть платные планы для размещения частных пакетов на NPM.
За прошедшие годы NPM стал важным фактором для многих компаний, не являющихся Node.js, благодаря огромной экосистеме внешнего интерфейса, созданной на основе NPM. Если ваша компания уже использует Sonatype Nexus для внутреннего размещения Java-проектов, вы также можете использовать его для размещения внутренних пакетов NPM.
Другие варианты включают JFrog Artifactory и Inedo ProGet , но я не использовал их.
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",
}
}
Следующий пост рассказывает об этом: Debuggable: Private npm modules
Для этого существует простой в использовании пакет npm. https://www.npmjs.org/package/sinopia
Короче говоря, Sinopia - это частный / кэширующий сервер репозитория npm, который вы можете настроить с нулевой конфигурацией.
Синопия может быть использована для:
Вердаччо - это то, что я искал, и оно заслуживает своего собственного ответа;) Это активно поддерживаемый форк Синопии (ответ здесь высоко одобрен ). Это реестр 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
14 апреля (2015) были представлены частные модули npm .
Когда вы платите за частные модули, вы можете:
- Размещайте столько личных пакетов, сколько хотите
- Предоставить доступ на чтение или чтение-запись для этих пакетов любому другому платному пользователю
- Установите и используйте любые пакеты, которые другие платные пользователи предоставили вам для чтения
- Сотрудничайте над любыми пакетами, которые другие платные пользователи дали вам право на запись
Конечно, это не бесплатно - в настоящее время 7 $ в месяц на пользователя.
И это все еще довольно новый сервис. Например, поддержка учетных записей организации отсутствует (по состоянию на июнь 2015 года):
В настоящее время частные пакеты доступны только для отдельных пользователей, но поддержка учетных записей организации в ближайшее время. Тем временем не стесняйтесь создавать пользователя для своей организации, и мы можем обновить его до организации, когда поддержка уже здесь.
Так что, хотя и не идеально, это официальное решение npm для поддержки приватных пакетов, и это само по себе заслуживает упоминания.
ОБНОВИТЬ
Теперь доступны частные пакеты Npm с планами для отдельных пользователей и организаций :
- Неограниченное количество публичных и частных пакетов
- $ 7 / месяц / разработчик
- Включает одно имя области, основанное на названии организации
- Публикация и контроль доступа к @ org-name / foo
(отказ от ответственности: даже не имеет никакого отношения к npm, Inc. )
Я думаю, что эта тема нуждается в обновлении. Если вы посмотрите на любой из имеющихся реестров npm, они очень тяжелые и им нужен couchdb. Gemfurry и другим нужно, чтобы вы отключились от публичных репозиториев. Некоторые из npm, такие как shadow-npm, не имеют недавних коммитов .
Затем мы нашли Реджи . Он имеет хорошую активность коммитов, чрезвычайно прост в установке и использовании и имеет довольно хорошую поддержку сообщества . Это очень легкий и вам не нужно иметь дело с couchdb и т. Д.
Извините, если я плохо понимаю ваш вопрос, но вот мой ответ:
Вы можете создать частный модуль npm и использовать обычные команды npm для его установки. Большинство пользователей node.js используют git в качестве своего репозитория, но вы можете использовать любой репозиторий, который вам подходит.
Как только ваша посылка сделана, используйте
npm install * tarball_url *
Немного опоздал на вечеринку, но NodeJS (по состоянию на ~ 14 ноября, я думаю) поддерживает корпоративные репозитории NPM - вы можете узнать больше на их официальном сайте .
На первый взгляд кажется, что npmE позволяет выполнять сквозное зеркалирование репозитория NPM, то есть он будет искать пакеты в реальном репозитории NPM, если не сможет найти ни одного в вашем внутреннем. Кажется очень полезным!
npm Enterprise - это локальное решение для безопасного совместного использования и распространения модулей JavaScript в вашей организации от команды, которая поддерживает npm и общедоступный реестр npm. Он предназначен для команд, которым необходимо:
простое внутреннее совместное использование частных модулей; лучший контроль над процессом разработки и развертывания; более строгая безопасность при развертывании модулей с открытым исходным кодом; соблюдение требований законодательства для локального размещения кода; npmE - это частная npm.
npmE - это реестр npm, который работает с тем же стандартным клиентом npm, который вы уже используете, но предоставляет функции, необходимые более крупным организациям, которые теперь с энтузиазмом принимают узел. Он создан npm, Inc., спонсором проекта с открытым исходным кодом npm и хостом общедоступного реестра npm.
К сожалению, это не бесплатно. Вы можете получить пробную версию, но это коммерческое программное обеспечение. Это не так уж и много для сольных разработчиков, но если вы сольный разработчик, у вас есть GitHub :-)
Этот пост рассказывает о том, как настроить частный реестр
Для репликации 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 _changes от CouchDB, и он будет извлекать любые новые изменения при уведомлении этого API.
Если вы когда-нибудь захотите остановить эти репликации, вы можете легко добавить "cancel":true
. Тогда сценарий будет
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 ридми установить НПМ (убедитесь , 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
Я мог бы немного опоздать на вечеринку, но любой из этих двух может работать для вас:
Вы также можете использовать Aragon Package Manager, если вы предпочитаете децентрализованный подход: