Npm, bir kuruluşta kullanmak için harika bir platform gibi geliyor, Nexus / Maven gibi özel bir repo'nun mümkün olup olmadığını merak ediyor. Google'da hiçbir şey görünmüyor :(
Npm, bir kuruluşta kullanmak için harika bir platform gibi geliyor, Nexus / Maven gibi özel bir repo'nun mümkün olup olmadığını merak ediyor. Google'da hiçbir şey görünmüyor :(
Yanıtlar:
Bunu yapmanın kolay bir yolu olduğunu sanmıyorum.
Npm belgelerine bir bakış bize bunun mümkün olduğunu söyler:
Kendi özel kayıt defterimi çalıştırabilir miyim?
Evet!
En kolay yol, kanepe veritabanını çoğaltmak ve API'leri uygulamak için aynı (veya benzer) tasarım belgesini kullanmaktır.
Resmi CouchDB'den sürekli çoğaltma kurar ve ardından dahili CouchDB'nizi kayıt defteri yapılandırması olarak ayarlarsanız, özel paketlerin yanı sıra yayınlanan paketleri de okuyabilirsiniz ve varsayılan olarak yalnızca dahili olarak yayımlanır. Daha sonra tüm dünyanın görmesi için bir paket yayınlamak istiyorsanız,
--registry
bu komutun yapılandırmasını geçersiz kılabilirsiniz .
Saat blogunda özel bir npm deposunun nasıl oluşturulacağına dair mükemmel bir öğretici de var .
DÜZENLEME (2017-02-26):
Gerçekten yeni değil, ancak şimdi NPM'de özel paketleri barındırmak için ücretli planlar var .
Yıllar içinde NPM, NPM üzerine kurulmuş devasa ön uç ekosistemi aracılığıyla Node.js olmayan birçok şirket için de bir faktör haline geldi. Şirketiniz zaten Java projelerini dahili olarak barındırmak için Sonatype Nexus'u çalıştırıyorsa , bunu dahili NPM paketlerini barındırmak için de kullanabilirsiniz.
Diğer seçenekler arasında JFrog Artifactory ve Inedo ProGet var , ancak bunları kullanmadım.
https://github.com/isaacs/npmjs.org/ : npm sürüm v1.0.26'da özel git depo URL'lerini package.json dosyalarınıza bağımlılık olarak belirtebilirsiniz. Ben kullanmadım ama geribildirim isterim. Yapman gerekenler işte burada:
{
"name": "my-app",
"dependencies": {
"private-repo": "git+ssh://git@yourgitserver.com:my-app.git#v0.0.1",
}
}
Aşağıdaki yazı bunun hakkında konuşuyor: Hata ayıklama: Özel npm modülleri
Bunu yapmak için kullanımı kolay bir npm paketi var. https://www.npmjs.org/package/sinopia
Özetle, Sinopia, sıfır yapılandırmayla ayarlayabileceğiniz özel / önbellek npm depo sunucusudur.
Sinopi aşağıdakiler için kullanılabilir:
Verdaccio aradığım şeydi ve kendi cevabını hak ediyor;) Sinopia'nın aktif olarak tutulan bir çatalıdır ( burada çok onaylanmış cevap ). Bir npm paketi olarak bir npm kayıt defteri ve bulunabilir
burada: https://github.com/verdaccio/verdaccio ,
burada: https://www.verdaccio.org ,
burada: pnpm i -g verdaccio
veya
burada:docker run -it --rm --detach --name verdaccio -p 4873:4873 verdaccio/verdaccio
14 Nisan (2015) tarihinde, npm özel modülleri tanıtıldı.
Özel modüller için ödeme yaptığınızda şunları yapabilirsiniz:
- İstediğiniz kadar özel paket barındırın
- Bu paketler için diğer ücretli kullanıcılara okuma erişimi veya okuma-yazma erişimi verin
- Diğer ücretli kullanıcıların size okuma erişimi verdiği paketleri yükleyin ve kullanın
- Diğer ücretli kullanıcıların size yazma erişimi verdiği paketler üzerinde işbirliği yapın
Tabii ki ücretsiz değil - şu anda kullanıcı başına ayda 7 $.
Ve hala oldukça yeni bir hizmet. Örneğin, kuruluş hesapları desteği eksik (Haziran 2015 itibarıyla):
Şu anda, özel paketler yalnızca bireysel kullanıcılar tarafından kullanılabilir, ancak kuruluş hesapları için destek yakında sağlanacaktır. Bu arada kuruluşunuz için bir kullanıcı oluşturmaktan çekinmeyin; destek burada olduğunda onu bir kuruluşa yükseltebiliriz.
Bu yüzden mükemmel olmasa da, özel paketleri korumak için resmi npm çözümü ve bu da bahsetmeye değer.
GÜNCELLEME
Npm Özel Paketleri artık hem bireysel kullanıcılar hem de kuruluşlar için planlarla kullanıma sunulmuştur :
- Sınırsız sayıda ortak ve özel paket
- 7 $ / ay / geliştirici
- Kuruluş adına bağlı olarak bir kapsam adı içerir
- @ Org-name / foo'ya erişimi yayınlama ve kontrol etme
(feragatname: npm, Inc. ile herhangi bir şekilde uzaktan bağlı bile değildir )
Sanırım bu iş parçacığının güncellenmesi gerekiyor. Mevcut olan npm kayıtlarından herhangi birine bakarsanız, son derece ağırdırlar ve couchdb'ye ihtiyaç duyarlar. Gemfurry ve diğerlerinin halka açık depolardan ayrılmanız gerekir. Npm'lerin bazılarının gölge-npm gibi yeni bir taahhütleri yoktur .
Sonra Reggie'yi bulduk . İyi bir taahhüt etkinliği var, kurulumu ve kullanımı son derece kolay ve oldukça iyi bir topluluk desteğine sahip . Son derece hafiftir ve couchdb vb.İle uğraşmanıza gerek yoktur.
Sorunuzu iyi anlamıyorsam beni affedin, ama işte cevabım:
Özel bir npm modülü oluşturabilir ve kurmak için npm'nin normal komutlarını kullanabilirsiniz. Node.js kullanıcılarının çoğu git'i depo olarak kullanır, ancak sizin için uygun olan depoyu kullanabilirsiniz.
Paketiniz yapıldıktan sonra şunu kullanın:
npm install * tarball_url *
Partiye biraz geç, ancak NodeJS (~ 14 Kasım itibariyle) kurumsal NPM depolarını destekliyor - kendi resmi sitesinde daha fazla bilgi edinebilirsiniz .
İmtiyazlı bir bakışta, npmE'nin NPM deposunun düşey olarak yansıtılmasına izin verdiği anlaşılıyor - yani, dahili olanınızda bir tane bulamazsa gerçek NPM deposundaki paketleri arayacaktır . Çok faydalı görünüyor!
npm Enterprise, npm ve genel npm kayıtlarını tutan ekipten kuruluşunuzdaki JavaScript modüllerini güvenli bir şekilde paylaşmak ve dağıtmak için şirket içi bir çözümdür. Aşağıdakilere ihtiyaç duyan ekipler için tasarlanmıştır:
özel modüllerin kolay dahili paylaşımı Açık kaynaklı modüllerin dağıtılması etrafında geliştirme ve dağıtım iş akışının daha iyi kontrolü, şirket içi kodu barındırmak için yasal gerekliliklere uygunluk npmE özel npm'dir
npmE, zaten kullandığınız aynı standart npm istemcisi ile çalışan, ancak şimdi heyecanla düğümü benimseyen daha büyük kuruluşların ihtiyaç duyduğu özellikleri sağlayan bir npm kayıt defteri. Npm açık kaynak projesinin sponsoru ve genel npm kayıt defterinin sahibi npm, Inc. tarafından inşa edilmiştir.
Ne yazık ki, ücretsiz değil. Deneme alabilirsiniz, ancak ticari bir yazılımdır. Bu, solo geliştiriciler için o kadar da iyi değil, ancak solo bir geliştiriciyseniz, GitHub :-)
Bu yazı özel bir kayıt defterini nasıl kuracağınızı anlatıyor
Npmjs.org çoğaltılırken aşağıdaki komutu kullanın
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
Komutta olduğunu unutmayın , bu CouchDB'nin _changes API'sini kullanır ve bu API bildirildiğinde yeni değişiklikleri çeker.
Bu kopyaları durdurmak isterseniz, kolayca ekleyebilirsiniz "cancel":true
. Sonra senaryo
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"
Sonra npm'i kurmak için npmjs.org benioku adresine gidin ( nodejs
ve git
yüklü olduğundan emin olun ). Darbe tüm adımlar
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
Partiye biraz geç kalmış olabilirim ama bu ikisinden herhangi biri sizin için işe yarayabilir:
Merkezi olmayan bir yaklaşımı tercih ederseniz Aragon Paket Yöneticisi'ni de kullanabilirsiniz: