Npm звучить як чудова платформа для використання в організації, цікаво, якщо можливе приватне репо, як, наприклад, Nexus / Maven. У Google нічого не з’являється :(
Npm звучить як чудова платформа для використання в організації, цікаво, якщо можливе приватне репо, як, наприклад, Nexus / Maven. У Google нічого не з’являється :(
Відповіді:
Я не думаю, що існує простий спосіб зробити це.
Погляд на документацію НПМ говорить нам, що це можливо:
Чи можу я запустити власний приватний реєстр?
Так!
Найпростіший спосіб - копіювати базу даних дивана, а також використовувати той же (або подібний) дизайн-документ для реалізації API.
Якщо ви встановите безперервну реплікацію з офіційного CouchDB, а потім встановите свій внутрішній CouchDB як конфігурацію реєстру, тоді ви зможете читати будь-які опубліковані пакети, крім ваших приватних, і за замовчуванням публікуватиметься лише всередині країни. Якщо ви хочете опублікувати пакет для побачення всього світу, ви можете просто змінити
--registry
конфігурацію для цієї команди.
У блозі годинника також є чудовий підручник щодо створення приватного сховища npm .
EDIT (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 як залежність у файлах пакета.json. Я не користувався цим, але дуже хотів би отримати зворотній зв'язок. Ось що вам потрібно зробити:
{
"name": "my-app",
"dependencies": {
"private-repo": "git+ssh://git@yourgitserver.com:my-app.git#v0.0.1",
}
}
Наступний пост розповідає про це: Налагодження: Приватні модулі npm
Для цього є простий у використанні пакет npm. https://www.npmjs.org/package/sinopia
У двох словах, Sinopia є приватним сервером сховищ npm / кешування, який можна налаштувати з нульовою конфігурацією.
Синопію можна використовувати для:
Verdaccio є те , що я шукав, і він заслуговує свій власний відповідь;) Це активно підтримується розвилка Синоп (високо upvoted відповідь тут ). Це реєстр 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. )
Я думаю, що цей потік потребує оновлення. Якщо ви подивитеся на будь-який із наявних реєстрів, що є в наявності, вони дуже важкі і їм потрібен couchdb. Gemfurry та інші потребують, щоб ви відключилися від громадських репостів. Деякі з npm подібні shadow-npm не мають останніх змін .
Потім ми знайшли Реджі . Вона отримала хорошу активність у вчиненні, надзвичайно проста в установці та використанні та має досить гарну підтримку громади . Його надзвичайно легкий вага, і вам не доведеться мати справу з couchdb тощо.
Пробачте, якщо я не добре зрозумів ваше запитання, але ось моя відповідь:
Ви можете створити приватний модуль npm та використовувати звичайні команди npm для його встановлення. Більшість користувачів node.js використовують git як своє сховище, але ви можете використовувати все, що працює для вас.
Як тільки ваш пакет зроблений, тоді використовуйте
npm встановити * 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
в команді є, це використовує _changes API 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, якщо ви віддаєте перевагу децентралізованому підходу: