Saya telah mengambil beberapa kode bersama dan memasukkannya ke dalam modul NPM, yang saya tidak ingin mengunggah ke registri pusat. Pertanyaannya adalah, bagaimana cara menginstalnya dari proyek lain?
Cara yang jelas mungkin untuk mengatur registri NPM saya sendiri, tetapi menurut dokumentasi, itu melibatkan banyak kerumitan.
Bisakah saya menginstal modul NPM yang berada di sistem file lokal, atau bahkan mungkin dari git?
npm install --from-git git@server:project
node.js
npm
package
npm-private-modules
futlib
sumber
sumber
npm install
semua file disalin ke direktori proyek Anda. Jadi jalur dalamrequire
pernyataan akan relatif hanya ke direktori proyek Anda.install
bukankah itu hanya menginstal di sana dan bukan untuk proyek yang ingin Anda gunakan?#<ref>
ke akhir url git, misgit://github.com/visionmedia/express.git#v0.0.1
; (B) Agar aman tambahkan"private": true
ke package.json dari repo pribadi Anda. Ini akan memastikan npm tidak akan pernah membiarkan Anda secara tidak sengaja mempublikasikan saus rahasia Anda ke registri npm resmi. (menurut debuggable.com/posts/… )npm i git+http://all/the/things.git
meskipungit clone http://all/the/things.git
berfungsi dengan baikDalam modul npm pribadi Anda, tambahkan
ke package.json Anda
Kemudian untuk referensi modul pribadi di modul lain, gunakan ini di package.json Anda
sumber
"private": true
bagian itu tidak perlu, tetapi itu akan membantu mencegah repo pribadi Anda dari tidak sengaja dipublikasikan ke registri npm publik.npm install <git remote url>
bagian ini, ada opsi sepertiGIT_ASKPASS
danGIT_SSH
. Contoh penggunaan untuk memilih kunci selain dari id_rsa default:GIT_SSH_COMMAND='ssh -i ~/.ssh/custom_ident' npm install git+ssh://[email protected]:npm/npm.git
Ya kamu bisa! Dari docs https://docs.npmjs.com/cli/install
Bukankah npm brilian?
sumber
tar -czf my-package.tar.gz dist
( dengan asumsidist
folder Anda juga memilikipackage.json
file yang tepat di dalamnya), maka Anda dapatnpm install ../my-lib/my-package.tar.gz
dari proyek Anda yang lain.Perbarui Januari 2016
Selain jawaban lain , kadang-kadang ada skenario di mana Anda ingin memiliki modul pribadi yang tersedia dalam konteks tim.
Baik Github dan Bitbucket mendukung konsep menghasilkan Kunci API tim . Kunci API ini dapat digunakan sebagai kata sandi untuk melakukan permintaan API sebagai tim ini.
Dalam modul npm pribadi Anda, tambahkan
ke package.json Anda
Kemudian untuk referensi modul pribadi di modul lain, gunakan ini di package.json Anda
di mana nama tim = myteamname , dan API Key = aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4
Di sini saya referensi repo bitbucket, tetapi hampir identik menggunakan github juga.
Akhirnya, sebagai alternatif, jika Anda benar-benar tidak keberatan membayar $ 7 per bulan (pada saat penulisan) maka Anda sekarang dapat memiliki modul NPM pribadi di luar kotak.
sumber
FWIW: Saya punya masalah dengan semua jawaban ini ketika berhadapan dengan repositori organisasi swasta.
Berikut ini bekerja untuk saya:
Sebagai contoh:
Saya tidak sepenuhnya yakin mengapa jawaban lain tidak berhasil untuk saya dalam kasus ini, karena itulah yang saya coba pertama kali sebelum saya menekan Google dan menemukan jawaban ini. Dan jawaban lainnya adalah apa yang telah saya lakukan di masa lalu.
Semoga ini bisa membantu orang lain.
sumber
https://
, dan pastikan kata sandi tidak diperlukan pada menjalankan kedua. Maka Anda baik untuk pergi!)Saya memiliki masalah yang sama, dan setelah beberapa pencarian, saya menemukan Reggie ( https://github.com/mbrevoort/node-reggie ). Terlihat cukup solid. Hal ini memungkinkan untuk penerbitan modul NPM yang ringan ke server pribadi. Tidak sempurna (tidak ada otentikasi saat instalasi), dan masih sangat muda, tapi saya mengujinya secara lokal, dan tampaknya melakukan apa yang seharusnya dilakukan.
Itu adalah ... (dan ini hanya dari dokumen mereka)
kemudian masukkan ke direktori modul Anda dan ...
akhirnya, Anda dapat menginstal paket dari reggie hanya dengan menggunakan url itu baik dalam perintah instal langsung npm, atau dari dalam package.json ... seperti itu
atau..
sumber
Struktur kode Anda dengan cara yang dapat diakses seperti di bawah ini. Jika ini mungkin bagi Anda.
Di dalam MainApp @ NodProjs \ Apps \ MainApp \
Anda mungkin perlu memperbarui package.json sebagai:
Ini berhasil untuk situasi saya.
sumber
Npm sekarang menyediakan modul host pribadi tanpa batas untuk $ 7 / pengguna / bulan yang digunakan seperti itu
dalam paket json Anda
"name": " @username/private-project"
kemudian membutuhkan proyek Anda:
sumber
Dimulai dengan jawaban arcseldon , saya menemukan bahwa nama tim diperlukan di URL seperti:
Dan perhatikan bahwa kunci API hanya tersedia untuk tim, bukan pengguna individual.
sumber
Konfigurasi untuk menginstal dari repositori Github publik, bahkan jika mesin di bawah firewall:
sumber
Saya menggunakan yang berikut ini dengan repositori github pribadi:
sumber
Inilah yang saya cari :
sumber
Anda dapat menggunakan Verdaccio untuk tujuan ini yang merupakan registry proxy npm pribadi yang ringan yang dibangun di Node.js. Juga gratis dan open-source. Dengan menggunakan Verdaccio itu tidak melibatkan banyak kerumitan sebagai registri npm pribadi biasa.
Anda dapat menemukan informasi terperinci tentang cara menginstal dan menjalankannya di situs web mereka, tetapi berikut adalah langkah-langkahnya:
Itu membutuhkan
node >=8.x
.Ini juga memiliki buruh pelabuhan sehingga Anda dapat dengan mudah menerbitkannya ke buruh pelabuhan yang tersedia untuk umum dan voila Anda memiliki repositori npm pribadi yang dapat didistribusikan ke orang lain dengan cara seperti yang Anda konfigurasikan!
sumber
Sangat sederhana -
Ini sebenarnya mengatur
registry = "https://path-to-your-registry"
baris ini/Users/<ur-machine-user-name>/.npmrc
Semua nilai yang telah Anda tetapkan secara eksplisit atau telah ditetapkan secara default dapat dilihat oleh -
npm config list
sumber