Bagaimana cara menginstal modul node.js tanpa menggunakan npm?


115

Ada beberapa modul yang terdaftar di halaman github node tetapi tidak diterbitkan dengan npm-registry. Modul ini tidak dapat diinstal menggunakan npm.

Apa cara yang benar untuk menginstal modul nodejs ini setelah mengkloningnya dari Git?

Jawaban:


73

Anda perlu mengunduh sumbernya dari github. Temukan file utama lalu masukkan ke dalam file utama Anda.

Contohnya dapat ditemukan di sini> Bagaimana cara menginstal modul node.js secara manual?

Biasanya Anda perlu mencari sumbernya dan membuka file package.json. Di sana Anda dapat menemukan file utama. Sehingga Anda bisa memasukkannya ke dalam aplikasi Anda.

Untuk menyertakan example.js di aplikasi Anda. Salin di folder aplikasi Anda dan tambahkan ini di bagian atas file js utama Anda.

var moduleName = require("path/to/example.js")


1
Apakah mungkin untuk mengimpor skrip dari URL eksternal (seperti var myscript = require("http://www.mywebsite.com/myscript.js"))? Sepertinya requirefungsi tersebut tidak berfungsi untuk URL eksternal.
Anderson Green

2
Requirement sebenarnya sinkron, jadi tidak, ini tidak berfungsi untuk URL eksternal.
Chris Tavares

Catatan: Anda perlu menghapus yang -masterditambahkan ke perpustakaan github; seperti dalam perubahan xxx-masterke xxx.
BAR

65

Modul ini tidak dapat dipasang menggunakan npm.

Sebenarnya Anda dapat menginstal modul dengan menentukan alih-alih nama jalur lokal. Selama repositori memiliki package.jsonfile yang valid, ia harus berfungsi.


Tipe npm -l dan bantuan cantik akan muncul seperti ini:

CLI:

...
install     npm install <tarball file>
                npm install <tarball url>
                npm install <folder>
                npm install <pkg>
                npm install <pkg>@<tag>
                npm install <pkg>@<version>
                npm install <pkg>@<version range>

                Can specify one or more: npm install ./foo.tgz bar@stable /some/folder
                If no argument is supplied and ./npm-shrinkwrap.json is 
                present, installs dependencies specified in the shrinkwrap.
                Otherwise, installs dependencies from ./package.json.

Yang menarik perhatian saya adalah: npm install <folder>

Dalam kasus saya, saya mengalami masalah dengan mrtmodul jadi saya melakukan ini (dalam direktori sementara)

  • Gandakan repo

     git clone https://github.com/oortcloud/meteorite.git
  • Dan saya menginstalnya secara global dengan:

     npm install -g ./meteorite

Tip:

Anda juga dapat menginstal repo ke proyek npm lokal dengan cara yang sama dengan:

     npm install ../meteorite

Dan juga seseorang dapat membuat tautan ke repo, jika patch dalam pengembangan diperlukan:

     npm link ../meteorite

1
paling bagus. Saya juga mengalami masalah dengan modul, jadi saya bercabang dan mengkloningnya ke direktori saudara dari proyek web saya, memperbarui semua ketergantungannya ke versi terbaru, dan kemudian menginstalnya di proyek web saya dengan 'npm install ../ broken_module_name Itu bekerja seperti pesona. Terima kasih!
Perry Tew

+1 tetapi tidak berfungsi jika kita tidak memiliki akses jaringan untuk npm dan modul yang kita pasang npm install <folder>memiliki dependensi npm lain yang tak terhitung jumlahnya.
Abdul Rauf

Jika npm menemukan paket tersebut ke dalam node_modules, baik dari cakupan global (tidak yakin di sini) atau lokal, ia tidak akan mencoba untuk mengunduhnya lagi. Ini berarti jika semua dependensi langsung dari repo dapat diunduh sebelumnya dan disalin ke folder node_module, maka itu akan berfungsi.
Tiberiu C.

11

Unduh kode dari github ke direktori node_modules

var moduleName = require("<name of directory>")

itu harus dilakukan.

jika modul memiliki ketergantungan dan memiliki package.json, buka modul dan masukkan npm install.

Semoga ini membantu


Saya pikir kode ini berfungsi jika file utama bernamaindex.js
R3tep

8

Anda dapat mengkloning modul langsung ke proyek lokal Anda.

Mulai terminal. cd ke proyek Anda dan kemudian:

npm instal https://github.com/repo/npm_module.git --save


1
Jawaban yang saya cari.
Faisal Mq

Apa yang terjadi jika paket telah diubah, bagaimana Anda memperbarui ke versi terbaru? ATM, satu-satunya "solusi" yang saya temukan adalah menghapus fodler dari node_modules, menghapus entri package.json dan menambahkan kembali, yang merepotkan ...
Predrag Stojadinović

1

Selangkah demi selangkah:

  • katakanlah Anda bekerja pada sebuah proyek use-gulpyang menggunakan ( requires) node_modulesseperti gulpdan gulp-util.
  • Sekarang Anda ingin membuat beberapa modifikasi pada gulp-utillib dan mengujinya secara lokal dengan use-gulpproyek Anda ...
  • gulp-utilProyek garpu di github \ bitbucket dll.
  • Beralih ke proyek Anda: cd use-gulp/node_modules
  • Kloning gulp-utilsebagai gulp-util-dev:git clone https://.../gulp-util.git gulp-util-dev
  • Jalankan npm installuntuk memastikan dependensi gulp-util-devtersedia.
  • Sekarang Anda memiliki cermin gulp-utilsebagai gulp-util-dev. Dalam use-gulpproyek Anda, Anda sekarang dapat mengganti: require('gulp-util')...;call with: require('gulp-util-dev')untuk menguji perubahan yang Anda lakukangulp-util-dev
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.