Saya memiliki aplikasi yang memiliki set dependensi yang biasa pada modul pihak ketiga (misalnya 'express') yang ditentukan dalam file package.json di bawah dependensi. Misalnya
"express" : "3.1.1"
Saya ingin membuat struktur kode saya sendiri secara modular dan memiliki satu set modul lokal (artinya pada sistem file saya saat ini) diinstal oleh package.json. Saya tahu bahwa saya dapat menginstal modul lokal dengan menjalankan:
npm install path/to/mymodule
Namun, saya tidak tahu bagaimana cara mewujudkannya melalui struktur dependensi package.json. Menggunakan --save
opsi dalam perintah ini hanya menempatkan "mymodule": "0.0.0"
ke package.json saya (tidak merujuk lokasi filepath). Jika saya kemudian menghapus versi yang terinstal dari node_modules, dan mencoba menginstal ulang dari package.json, gagal (karena mencari "mymodule" di registri pusat, dan tidak terlihat secara lokal).
Saya yakin ini adalah cara untuk memberitahukan "dependencies": {}
struktur yang saya inginkan untuk diinstal dari jalur sistem file, tetapi tidak tahu caranya.
Adakah yang punya masalah ini? Terima kasih.
package.json
dengan apa yang kita miliki diGemfile
.Jawaban:
npm install
sekarang mendukung iniAgar ini berfungsi
mymodule
harus dikonfigurasikan sebagai modul dengan modulnya sendiripackage.json
. Lihat Membuat modul NodeJS .Pada npm 2.0, dependensi lokal didukung secara native. Lihat jawaban danilopopeye untuk pertanyaan serupa . Saya telah menyalin jawabannya di sini karena pertanyaan ini menempati peringkat sangat tinggi dalam hasil pencarian web.
menyinkronkan pembaruan
Sejak
npm install
salinanmymodule
kenode_modules
, perubahanmymodule
sumber 's akan secara otomatis terlihat oleh proyek tergantung.Ada dua cara untuk memperbarui proyek dependen
Perbarui versi
mymodule
dan kemudian gunakannpm update
: Seperti yang Anda lihat di atas,package.json
entri "dependensi" tidak menyertakan penentu versi seperti yang akan Anda lihat untuk dependensi normal. Sebaliknya, untuk dependensi lokal,npm update
hanya mencoba untuk memastikan terbaru versi diinstal, sebagaimana ditentukan olehmymodule
'spackage.json
. Lihat jawaban chriskelly untuk masalah khusus ini .Instal ulang menggunakan
npm install
. Ini akan menginstal apa pun yang ada dimymodule
jalur sumber, bahkan jika itu lebih tua, atau memiliki cabang alternatif diperiksa, apa pun.sumber
"mymodule":"file:mymoduledir"
npm install --save ../my-local-repo
import { HelloWorld } from "my-test-lib";
, tetapi saya menerima kesalahan "Cant find module". Silakan, lihat stackoverflow.com/questions/46818083/...import { HelloWorld } from "my-test-lib";
Lihat: Ketergantungan lokal di package.json
Sepertinya jawabannya adalah
npm link
: https://docs.npmjs.com/cli/linksumber
symlink
bagaimana proyek induk tahu untuk membangun kembali setelah ketergantungan selesai dibangun?Saya tidak dapat menemukan cara yang rapi pada akhirnya jadi saya pergi untuk membuat direktori bernama
local_modules
dan kemudian menambahkan bashscript ini ke package.json di skrip-> pra-instalsumber
Setelah berjuang keras dengan
npm link
perintah (solusi yang disarankan untuk mengembangkan modul lokal tanpa menerbitkannya ke registri atau mempertahankan salinan terpisah di folder node_modules), saya membangun modul npm kecil untuk membantu masalah ini.Perbaikan memerlukan dua langkah mudah .
Pertama:
Kedua, tambahkan ini ke
package.json
:Lebih detail di https://www.npmjs.com/package/lib-manager . Semoga ini bisa membantu seseorang.
sumber
Jika Anda dapat dengan mudah menerbitkan modul-modul Anda yang sudah diinstal di node_modules bersama file-file Anda yang lain, Anda dapat melakukannya seperti ini:
Anda mungkin juga ingin menyimpan modul Anda di git dan memberi tahu orang tua Anda package.json untuk menginstal dependensi dari git: https://npmjs.org/doc/json.html#Git-URLs-as-Dependencies
sumber