Saya ingin melakukan sesuatu seperti ini, sehingga npm install
juga menginstal package.json
dari ../somelocallib
atau lebih penting dependensinya.
"dependencies": {
"express": "*",
"../somelocallib": "*"
}
Fitur ini diimplementasikan dalam versi 2.0.0 npm. Contoh:
{
"name": "baz",
"dependencies": {
"bar": "file:../foo/bar"
}
}
Salah satu jalur berikut ini juga valid:
../foo/bar
~/foo/bar
./foo/bar
/foo/bar
Paket lokal akan disalin ke awalan ( ./node-modules
).
Masukkan somelocallib
sebagai ketergantungan pada Anda package.json
seperti biasa:
"dependencies": {
"somelocallib": "0.0.x"
}
Kemudian jalankan npm link ../somelocallib
dan npm akan menginstal versi yang sedang Anda kerjakan sebagai symlink .
app@0.0.1 /private/tmp/app
└── somelocallib@0.0.1 -> /private/tmp/somelocallib
Referensi: tautan (1)
npm dedup
untuk memperbaiki masalah ini. npmjs.org/doc/cli/npm-dedupe.htmlnpm install <folder>
deskripsi mengatakan Instal paket di direktori sebagai symlink dalam proyek saat ini.Sekarang dimungkinkan untuk menentukan jalur pemasangan modul Node lokal di Anda
package.json
secara langsung. Dari dokumen:sumber
"bar": "file:///home/user/src/foo/bar"
node:onbuild
gambar standar hanya menyalin direktori saat ini, dan dengan demikian tidak menyertakan apa pun di dalamnya../foo
.npm install
berasal dari atau repositori git lain di LAN? Ketika saya mencoba yang di atas dan menginstal npm dari git + ssh tampaknya untuk melihat di direktori node_modules dan tidak mencoba untuk pergi ke git + ssh meskipun itu adalah bagaimana saya menginstal paket tingkat atas.Ini bekerja untuk saya.
Tempatkan yang berikut ini di file package.json Anda
sumber
.gitignore
dalam folder modul, dibuat.npmignore
dan pertama kali saya menjalankannya diterapkan 777 secara rekursif pada semua folder kecualinode_modules
. Tapi ya, itu menginstal dependensi. Menggunakan npm versi 1.4.14."dependencies": { "my-own-module": "file:../my-own-module" }
?npm link
adalah bahwa Anda tidak perlu melakukannpm install
setiap waktu untuk mendapatkan dependensi Anda yang terbaru.Jika Anda ingin mengotomatiskan ini lebih lanjut, karena Anda memeriksa modul Anda ke dalam kontrol versi, dan tidak ingin bergantung pada dev yang mengingat tautan npm, Anda dapat menambahkan ini ke bagian package.json "script" Anda:
Ini terasa luar biasa, tetapi tampaknya "berhasil". Dapatkan tip dari masalah npm ini: https://github.com/npm/npm/issues/1558#issuecomment-12444454
sumber
postinstall
danpostupdate
bukannyapreinstall
danpreupdate
?Inilah cara Anda akan menambahkan dependensi lokal:
npm install file:src/assets/js/FILE_NAME
Tambahkan ke package.json dari NPM:
npm install --save file:src/assets/js/FILE_NAME
Tambahkan langsung ke package.json seperti ini:
sumber
Proyek master
Ini adalah package.json yang akan Anda gunakan untuk proyek master:
Di sana,
./somelocallib
adalah referensi ke folder perpustakaan sebagai relatif terhadap paket proyek utama .Referensi: https://docs.npmjs.com/files/package.json#local-paths
Sub proyek
Tangani dependensi perpustakaan Anda.
Selain berlari
npm install
, Anda harus berlari(cd node_modules/somelocallib && npm install)
.Ini adalah bug yang dikenal dengan NPM.
Referensi: https://github.com/npm/npm/issues/1341 (mencari referensi yang lebih terkini)
Catatan untuk Docker
Periksa master Anda
package.lock
dan Andasomelocallib/package.lock
ke manajer kode sumber Anda.Kemudian dalam penggunaan Dockerfile Anda:
Saya menggunakan tanda kurung dalam
(cd A && B)
konstruksi saya untuk membuat operasi idempoten.sumber
Saya tahu itu
npm install ../somelocallib
berhasil.Namun, saya tidak tahu apakah sintaks yang Anda perlihatkan dalam pertanyaan akan berfungsi dari
package.json
...Sayangnya, doc tampaknya hanya menyebutkan URL sebagai ketergantungan.
Coba
file:///.../...tar.gz
, tunjuk lib lokal yang di-zip ... dan beri tahu kami jika berhasil.sumber
Ini bekerja untuk saya: pertama, pastikan direktori npm memiliki pengguna yang tepat
Kemudian link Anda di package.json Anda
sumber
npm install
.Sebenarnya, pada npm 2.0, sekarang ada dukungan jalur lokal (lihat di sini ).
sumber
Penasaran ..... setidaknya di Windows (npm saya 3.something) yang perlu saya lakukan:
Ketika saya melakukan
npm install ../module1 --save
itu menghasilkan jalur absolut dan bukan relatif per dokumentasi.Saya mengacaukan sedikit lagi dan memutuskan itu
../xxx
sudah cukup.Secara khusus, saya memiliki modul simpul lokal diperiksa untuk mengatakan d: \ build \ module1, d: \ build \ module2 dan proyek simpul saya (aplikasi) di d: \ build \ nodeApp.
Untuk 'menginstal', saya:
module1's package.json memiliki ketergantungan pada "module2": "../module2"; module2 tidak memiliki ketergantungan lokal; nodeApp memiliki dependensi "module1": "../module1" dan "module2": "../module2".
Tidak yakin apakah ini hanya berfungsi untuk saya karena semua 3 folder (module1, module2 dan nodeApp) berada pada level yang sama .......
sumber
Dua langkah untuk pengembangan lokal yang lengkap:
sumber