Npm terdengar seperti platform hebat untuk digunakan dalam organisasi, ingin tahu apakah repo pribadi dimungkinkan, seperti dengan Nexus / Maven. Tidak ada yang muncul di Google :(
Npm terdengar seperti platform hebat untuk digunakan dalam organisasi, ingin tahu apakah repo pribadi dimungkinkan, seperti dengan Nexus / Maven. Tidak ada yang muncul di Google :(
Jawaban:
Saya tidak berpikir ada cara mudah untuk melakukan ini.
Sebuah melihat dokumentasi NPM memberitahu kita, bahwa adalah mungkin:
Bisakah saya menjalankan registry pribadi saya sendiri?
Iya!
Cara termudah adalah dengan mereplikasi basis data sofa, dan menggunakan dokumen desain yang sama (atau serupa) untuk mengimplementasikan API.
Jika Anda mengatur replikasi berkelanjutan dari CouchDB resmi, dan kemudian menetapkan CouchDB internal Anda sebagai konfigurasi registri, maka Anda akan dapat membaca paket apa pun yang diterbitkan, selain paket pribadi Anda, dan secara default hanya akan mempublikasikan secara internal. Jika kemudian Anda ingin menerbitkan paket untuk dilihat seluruh dunia, Anda bisa langsung mengesampingkan
--registry
konfigurasi untuk perintah itu.
Ada juga tutorial yang sangat baik tentang cara membuat repositori npm pribadi di blog jam.
EDIT (2017-02-26):
Tidak benar-benar baru, tetapi sekarang ada paket berbayar untuk meng-host paket pribadi di NPM.
Selama bertahun-tahun, NPM telah menjadi faktor bagi banyak perusahaan non-Node.js, melalui ekosistem frontend besar yang dibangun di atas NPM. Jika perusahaan Anda sudah menjalankan Sonatype Nexus untuk hosting proyek Java secara internal, Anda juga dapat menggunakannya untuk hosting paket NPM internal.
Pilihan lain termasuk JFrog Artifactory dan Inedo ProGet , tapi saya belum menggunakannya.
https://github.com/isaacs/npmjs.org/ : Dalam npm versi v1.0.26 Anda dapat menentukan url repositori git pribadi sebagai ketergantungan pada file package.json Anda. Saya belum menggunakannya tetapi akan sangat menyukai umpan balik. Inilah yang perlu Anda lakukan:
{
"name": "my-app",
"dependencies": {
"private-repo": "git+ssh://git@yourgitserver.com:my-app.git#v0.0.1",
}
}
Posting berikut berbicara tentang ini: Debuggable: Private npm modules
Ada paket npm yang mudah digunakan untuk melakukan ini. https://www.npmjs.org/package/sinopia
Singkatnya, Sinopia adalah server repositori private / caching npm yang dapat Anda atur dengan konfigurasi nol.
Sinopia dapat digunakan untuk:
Verdaccio adalah apa yang saya cari dan layak untuk jawabannya sendiri;) Ini adalah garpu Sinopia yang dikelola secara aktif (jawaban yang sangat tervotifikasi di sini ). Ini adalah registri npm sebagai paket npm , dan dapat ditemukan
di sini: https://github.com/verdaccio/verdaccio , di
sini: https://www.verdaccio.org , di
sini:, pnpm i -g verdaccio
atau di
sini:docker run -it --rm --detach --name verdaccio -p 4873:4873 verdaccio/verdaccio
Pada 14 April (2015), npm private module diperkenalkan.
Saat Anda membayar modul pribadi, Anda dapat:
- Host paket pribadi sebanyak yang Anda inginkan
- Berikan akses baca atau baca-tulis untuk paket-paket itu kepada pengguna berbayar lainnya
- Instal dan gunakan paket apa pun yang telah diberikan akses oleh pengguna berbayar kepada Anda
- Berkolaborasi pada paket apa pun yang telah diberikan akses oleh pengguna berbayar lainnya kepada Anda
Tentu saja tidak gratis - saat ini $ 7 sebulan, per pengguna.
Dan ini masih merupakan layanan yang cukup baru. Misalnya, dukungan untuk akun organisasi tidak ada (pada Juni 2015):
Saat ini, paket pribadi hanya tersedia untuk pengguna individu, tetapi dukungan untuk akun organisasi akan segera hadir. Sementara itu, jangan ragu untuk membuat pengguna untuk organisasi Anda, dan kami dapat memutakhirkannya ke organisasi ketika dukungan ada di sini.
Jadi sementara tidak sempurna, ini adalah resmi solusi npm untuk memelihara paket pribadi, dan itu sendiri membuatnya layak disebut.
MEMPERBARUI
Paket Pribadi Npm sekarang tersedia, dengan paket untuk masing-masing pengguna dan organisasi :
- Paket publik & pribadi dalam jumlah tidak terbatas
- $ 7 / bulan / pengembang
- Termasuk satu nama ruang lingkup, berdasarkan nama organisasi
- Publikasikan dan kontrol akses ke @ org-name / foo
(disclaimer: bahkan tidak berafiliasi dengan npm, Inc. )
Saya kira utas ini membutuhkan pembaruan. Jika Anda melihat salah satu pendaftar npm yang tersedia, mereka sangat berat dan mereka membutuhkan couchdb. Gemfurry dan lainnya perlu Anda bayarkan dari repo publik. Beberapa shadow-npm seperti npm tidak memiliki commit baru-baru ini .
Kemudian, kami menemukan Reggie . Ini memiliki aktivitas komit yang baik, sangat mudah untuk diinstal dan digunakan dan memiliki dukungan komunitas yang cukup bagus . Ini sangat ringan dan Anda tidak harus berurusan dengan couchdb, dll.
Maafkan saya jika saya tidak mengerti pertanyaan Anda dengan baik, tapi inilah jawaban saya:
Anda dapat membuat modul npm pribadi dan menggunakan perintah normal npm untuk menginstalnya. Sebagian besar pengguna node.js menggunakan git sebagai repositori mereka, tetapi Anda dapat menggunakan repositori apa pun yang bekerja untuk Anda.
Setelah paket Anda dibuat, maka gunakan
npm instal * tarball_url *
Agak terlambat ke pesta, tetapi NodeJS (pada ~ 14 Nov saya kira) mendukung repositori NPM perusahaan - Anda dapat mengetahui lebih lanjut di situs resmi mereka .
Dari pandangan sepintas akan terlihat bahwa npmE memungkinkan mirror-through mirroring dari repositori NPM - yaitu, ia akan mencari paket dalam repositori NPM yang nyata jika tidak dapat menemukan satu di yang internal Anda. Tampaknya sangat berguna!
npm Enterprise adalah solusi di tempat untuk berbagi dan mendistribusikan modul JavaScript dengan aman di organisasi Anda, dari tim yang mengelola npm dan registri npm publik. Ini dirancang untuk tim yang membutuhkan:
berbagi internal yang mudah dari modul pribadi kontrol yang lebih baik terhadap pengembangan dan penerapan alur kerja keamanan yang lebih ketat di sekitar penerapan modul sumber terbuka kepatuhan dengan persyaratan hukum untuk meng-host kode di tempat npmE adalah pribadi npm
npmE adalah registri npm yang bekerja dengan klien npm standar yang sama yang sudah Anda gunakan, tetapi menyediakan fitur yang dibutuhkan oleh organisasi yang lebih besar yang sekarang dengan antusias mengadopsi node. Ini dibangun oleh npm, Inc., sponsor dari proyek open source npm dan host dari registri npm publik.
Sayangnya, ini tidak gratis. Anda bisa mendapatkan percobaan, tetapi ini adalah perangkat lunak komersial. Ini adalah bagian yang tidak terlalu bagus untuk pengembang solo, tetapi jika Anda adalah pengembang solo, Anda memiliki GitHub :-)
Posting ini berbicara tentang cara mengatur registri pribadi
Replikasi npmjs.org menggunakan perintah berikut
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"
Perhatikan ada "continuous":true
dalam perintah, ini menggunakan _changes API CouchDB dan akan menarik perubahan baru ketika API ini diberitahukan.
Jika Anda ingin menghentikan replikasi ini, Anda dapat dengan mudah menambahkan "cancel":true
. Maka skrip akan menjadi
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"
Kemudian pergi ke readme npmjs.org untuk menginstal npm (pastikan nodejs
dan git
diinstal). Pukulan adalah semua langkahnya
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
Saya mungkin sedikit terlambat ke pesta tetapi salah satu dari dua ini mungkin bekerja untuk Anda:
Anda juga dapat menggunakan Pengelola Paket Aragon jika Anda lebih suka pendekatan desentralisasi: