Mencoba memasang modul dari github menghasilkan:
ENOENT error pada package.json.
Mudah direproduksi menggunakan express:
npm install https://github.com/visionmedia/express
melempar kesalahan.
npm install express
bekerja.
Mengapa saya tidak dapat menginstal dari github?
Ini output konsolnya:
npm http GET https://github.com/visionmedia/express.git
npm http 200 https://github.com/visionmedia/express.git
npm ERR! not a package /home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/tmp.tgz
npm ERR! Error: ENOENT, open '/home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/package/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Linux 3.8.0-23-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "https://github.com/visionmedia/express.git"
npm ERR! cwd /home/guym/dev_env/projects_GIT/proj/somename
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/package/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/guym/dev_env/projects_GIT/proj/somename/npm-debug.log
npm ERR! not ok code 0
github
npm
npm-install
node-modules
orang mograbi
sumber
sumber
"express": "github:visionmedia/express"
ke"dependencies"
bagianpackage.json file
, lalu jalankan:npm install
(seperti yang disebutkan di bawah ini)Jawaban:
Karena
https://github.com/visionmedia/express
adalah URL halaman web dan bukan modul npm. Gunakan rasa ini:atau rasa ini jika Anda membutuhkan SSH:
sumber
git+https://github.com/visionmedia/express.git
untuk menggunakan https daripada ssh.package.json
file atau yang lain Anda akan mendapatkan error ini:Error: ENOENT, open 'tmp.tgz-unpack/package.json'
.#
untuk menggunakan cabang tertentu dari shell, yaitu:npm install git+https://github.com/user/repo.git\#branch
Anda juga
npm install visionmedia/express
dapat menginstal dari Githubatau
Ada juga dukungan untuk menginstal langsung dari Gist, Bitbucket, Gitlab, dan sejumlah format khusus lainnya. Lihatlah
npm install
dokumentasi untuk semuanya.sumber
github.com
hanya berfungsi untuk .Jika git tidak diinstal, kita dapat mencoba
sumber
master
. Mungkin lebih aman melakukannya dengan cara itu./tarball/
pada awalnyaPembaruan September 2016
Menginstal dari vanilla https github URL sekarang berfungsi:
EDIT 1: ada beberapa pengguna yang berkomentar bahwa Anda tidak dapat melakukan ini untuk semua modul karena Anda membaca dari sistem kontrol sumber, yang mungkin mengandung kode tidak valid / tidak dikompilasi / kereta. Jadi untuk menjadi jelas (walaupun harus dikatakan): mengingat bahwa kode dalam repo dalam keadaan npm-usable , Anda sekarang dapat dengan senang hati menginstal langsung dari github
EDIT 2: (21-10-2019) Kita sekarang hidup melalui "peak Typescript / React / Babel", dan oleh karena itu kompilasi JavaScript menjadi sangat umum. Jika Anda perlu mempertimbangkan kompilasi, lihat
prepare
. Yang mengatakan, modul NPM tidak perlu dikompilasi , dan bijaksana untuk mengasumsikan bahwa kompilasi bukan default, terutama untuk modul node yang lebih lama (dan mungkin juga untuk yang baru, "ESNext" -y yang sangat baru).sumber
dist
folder, dan sebagian besar tidak. Masalah yang saya tautkan adalah bug npm -prebuild
langkah ini tidak berjalan saat menginstal dari GitHub. Sebagai contoh, cobalah menginstal node-influx / node-influx .dist
folder BISA diinstal dari GitHub, misalnya:npm install https://github.com/fergiemcdowall/search-index-adder
berfungsi dengan sempurna./lib
(seolah-olah Anda memiliki folder dist). Maksud saya adalah bahwa hanya memasukkan URL GitHub dari repo di package.jons tidak dijamin berfungsi untuk menginstal repo itu. Modul-modul yang ditulis dalam TypeScript, misalnya, perlu memasukkan kode yang diubah ke dalam repo. Mereka biasanya tidak melakukan ini, melainkan menggunakan skrip pra-publikasi untuk membuang kode .JS ke folder dist, yang akan diunggah ke npmjs.com.prepare
skrip apa pun untuk "instalasi" kosong, yang mencakup git deps. Yang berarti komentar di atas tentang kompilasi dan folder dist sudah ketinggalan zaman. Paket apa pun yang mengatur kompilasi mereka untuk dijalankanprepare
akan berfungsi dengan baik sebagai git dep tanpa melakukan aset yang dikompilasi ke git.Ada juga yang
npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH}
menggunakan cabang berbeda.sumber
Jawaban teratas saat ini oleh Peter Lyons tidak relevan dengan versi NPM terbaru. Misalnya, menggunakan perintah yang sama yang dikritik dalam jawaban ini sekarang baik-baik saja.
Jika Anda terus mengalami masalah, itu mungkin masalah dengan paket apa pun yang Anda gunakan.
sumber
Metodenya tercakup dengan cukup baik sekarang dalam dokumentasi instalasi npm dan juga banyak jawaban lainnya di sini.
Namun, sesuatu yang penting yang telah berubah baru-baru ini adalah npm menambahkan
prepare
skrip untuk menggantikanprepublish
skrip. Ini memperbaiki masalah yang sudah berlangsung lama di mana modul yang diinstal melalui git tidak menjalankanprepublish
skrip dan dengan demikian tidak menyelesaikan langkah-langkah pembangunan yang terjadi ketika modul diterbitkan ke registri npm. Lihat https://github.com/npm/npm/issues/3055 .Tentu saja, pembuat modul harus memperbarui paket mereka. Json untuk menggunakan
prepare
arahan baru agar ini mulai bekerja.sumber
PEMBARUAN sekarang dapat Anda lakukan:
npm install git://github.com/foo/bar.git
atau di
package.json
:sumber
Bentuk umum dari sintaks adalah
yang berarti untuk kasus Anda
Dari npmjs docs:
sumber
Instal secara langsung:
Atau, Anda dapat menambahkan
"express": "github:visionmedia/express"
ke"dependencies"
bagianpackage.json
file, lalu jalankan:sumber
Anda juga bisa melakukannya
atau
Pada dasarnya:
sumber
Anda dapat langsung menginstal repo github dengan
npm install
perintah, seperti ini:npm install https://github.com/futurechallenger/npm_git_install.git --save
CATATAN: Dalam repo yang akan diinstal oleh perintah npm:
sumber
dist
folder atau kode build apa pun di repo Anda. Anda hanya perlu menggunakanprepare
skrip dipackage.json
.Sederhana:
contoh:
sumber
Saya mencoba
npm install git+https://github.com/visionmedia/express
tetapi itu terlalu lama dan saya tidak yakin itu akan berhasil.Apa yang berhasil bagi saya adalah -
yarn add git+https://github.com/visionmedia/express
.sumber
Coba perintah ini
perintah ini bekerja untuk saya.
sumber
~/node_modules
, maka Anda tidak perlu sudo.