Ini adalah package.json
modul saya untuk yang saya sertakan dalam proyek induk:
{
"version": "0.0.1",
"name": "module-name",
"dependencies": {
"express": "3.3.4",
"grunt": "0.4.1",
"grunt-contrib-compass": "0.4.0",
"grunt-contrib-copy": "0.4.1",
"grunt-contrib-cssmin": "0.4.1",
"grunt-contrib-jshint": "0.6.3",
"grunt-contrib-requirejs": "0.4.1",
"grunt-contrib-uglify": "0.2.2",
"grunt-contrib-watch": "0.5.1",
"grunt-express-server": "0.4.1",
"grunt-karma": "0.4.5",
"grunt-regex-replace": "0.2.5",
"request": "2.25.0"
},
"scripts": {
"postinstall": "grunt install"
}
}
Satu hal yang perlu diperhatikan adalah bahwa modul ini terkandung dalam repo pribadi dan saya memasukkannya ke dalam induk package.json
seperti:"module-name": "git+ssh://git@myserver:user/module-name.git"
postinstall
skrip saya gagal karenagrunt
paket lokal tidak ditemukan karena tidak diinstal oleh NPMJawaban:
Sepertinya Anda menekan bug yang sudah ada cukup lama dan belum memiliki solusi. Ada beberapa masalah terbuka untuk kasus ini di repositori npm:
Pada yang pertama orang daftar beberapa solusi yang dapat Anda coba.
Solusi alternatif mungkin (sedikit meretas) untuk secara eksplisit mencantumkan dependensi sebagai tanggungan tingkat pertama. Ini mengharuskan Anda untuk mempertahankan daftar itu tetapi secara praktis hal itu harus dilakukan sangat jarang.
sumber
Saya memiliki masalah yang sangat mirip, menghapus seluruh
node_modules
folder dan menginstal ulang bekerja untuk saya. Pelajari trik ini dari acara IT Crowd !sumber
npm install
.Saya menggunakan mesin windows.
sumber
jika Anda mewarisi kode ini, bisa jadi dependensi dan versinya dikunci dan Anda memiliki file ./npm-shrinkwrap.json.
jika ketergantungan Anda tidak tercantum dalam file itu, itu tidak akan pernah diinstal dengan
npm install
perintah.Anda harus menginstal paket secara manual dan kemudian menjalankan
npm shrinkwrap
untuk memperbarui file shrinkwrap.sumber
package-lock.json
file setelah memperbarui ke simpul 8.0.0 dan npm 5.0.0. Setelah itu, menjalankannpm install
hanya akan menginstal satu paket itu daripada semua dependensi saya. Menghapuspackage-lock.json
dan menjalankan kembalinpm install
memecahkan masalah untuk saya.package-lock.json
menghalangi.Saya curiga Anda menghadapi masalah di mana
package.json
file Anda tidak berada di direktori yang sama dengan file AndaGruntfile.js
. Saat Anda menjalankangrunt xxx
perintah, Anda mendapat pesan kesalahan seperti:Untuk saat ini, solusinya adalah:
npm install
untuk memuatnya secara lokalIMHO, sangat menyedihkan bahwa kita tidak dapat memiliki modul penyelesaian kasar yang dimuat dari modul npm induk (yaitu package.json dalam direktori induk dalam proyek yang sama). Diskusi di sini tampaknya mengindikasikan bahwa hal itu dilakukan untuk menghindari memuat modul "global" tetapi saya pikir yang kami inginkan adalah memuat dari modul "proyek saya".
sumber
Gruntfile.js
dan keduanya berisipackage.json
pada tingkat yang sama.grunt
, ini masalah dengannpm
tidak menginstal dependansi secara rekursif dalam proyek sub modul saya.OP mungkin benar untuk versi node yang lebih lama. Namun, saya menghadapi hal yang sama dengan simpul 4.4.1 juga.
Itu sangat baik dapat dihubungkan ke versi simpul yang Anda gunakan. Coba tingkatkan ke versi terbaru. Ketergantungan tertentu tidak memuat secara transitif jika tidak kompatibel dengan versi node.
Saya menemukan ini dengan menjalankan
npm update
.Setelah memutakhirkan ke versi terbaru (4.4 -> 5.9); ini diperbaiki.
sumber
Dalam kasus saya itu membantu untuk menghapus
node_modules
danpackage-lock.json
.Setelah itu instal ulang semuanya dengan
npm install
.sumber
Periksa juga apakah nama paket Anda diterima dengan benar:
SALAH:
BENAR
sumber
Anda mungkin perlu menginstal grunt-cli, coba ini sebelum melakukan instalasi npm:
Itu memperbaiki grunt tidak keluar untuk saya, Anda juga akan memerlukan file grunt yang valid.
Sumber: https://stackoverflow.com/a/16456467/241294
sumber
~ ᐅ which grunt /opt/local/bin/grunt
npm install
dangrunt install
, itu berfungsi dengan baik. Masalahnya adalah bahwa NPM tampaknya tidak menginstalpackage.json
grunt
, ketika Anda menginstal modul dengan NPM biasanya menyediakan ringkasan di akhir setiap dependensi dari modul yang telah diinstal; ketika saya menginstal modul yang bersangkutan saya tidak menerima ringkasan dari modul dependensi yang diinstal.Kalau-kalau ada orang yang menderita kesulitan ini dan kebetulan membuat kesalahan asanin yang sama yang saya lakukan, di sini adalah apa yang ada dalam kasus saya. Setelah membenturkan kepala ke dinding selama satu jam, saya menyadari bahwa json saya bersarang secara salah, dan kunci "dependensi" ada di dalam "repositori" kunci.
Tak perlu dikatakan, tidak ada kesalahan yang jelas, dan tidak ada modul yang dipasang.
sumber
Cara lain untuk mengatasi ini adalah dengan menambahkan ini ke
package.json
bagian skrip modul Andaapa yang akan dilakukan adalah, ini akan menginstal semua paket yang dibutuhkan oleh modul dan Anda tidak akan mendapatkan kesalahan itu.
sumber
terjadi dengan versi simpul lama. gunakan versi terbaru dari simpul seperti ini:
$ nvm use 8.0
$ rm -rf node_modules
$ npm install
$ npm i somemodule
sunting: juga pastikan Anda
save
.misalnya:
npm install yourmoduleName --save
sumber
Saya menerima kesalahan ini ketika saya menginstal lingkungan Node dev yang bersih di windows.
Untuk memperbaikinya, saya masuk ke direktori proyek baru saya (yang baru saja saya perancah dengan
yo angular
) dan mengetikkan dua perintah:npm install -g grunt --save-dev
Itu akan menginstal dependensi gerutuan lokal ke proyek Anda. Lanjut:
npm install
Itu akan memastikan semua dependensi proyek Anda (baru) diinstal.
Tada!
sumber
Layak untuk disebutkan untuk memastikan bahwa dependensi Anda harus berada di
dependencies
bagian Andapackage.json
(bukan sebaliknyadevDependencies
).Masalah saya pada dasarnya sama dengan OP:
repo1
) via"module-name": "git+ssh://git@myserver:user/my-repo-name.git"
di repo lain (Sebut sajarepo2
),repo2
'snode_modules
, satu paket ketergantungan darirepo1
itu tidak ada.repo1
adalah mendaftarkan ketergantungan itudevDependencies
sebagai gantidependencies
repo1
'spackage.json
daridevDependencies
kedependencies
repo2
, saya menghapus sayanode_modules
danpackage-lock.json
, memangnpm install
, sebuah voilà! ... ketergantungan ada di sana!sumber
Saya memiliki masalah yang sama. Tetapi pada mesin yang sama satu proyek memiliki package.json yang baik, di mana semua dependensi saya berhasil diinstal. Dan di proyek lain dependensi package.json saya tidak diinstal tidak peduli apa yang saya lakukan. Saya baru saja menyalin package.json dan menempel ke proyek lain itu. Dan itu berhasil! Perbedaan yang saya temukan hanyalah baris kosong di awal file. Tidak tahu atau itu memengaruhi apa pun, mungkin masalah lain. Tapi masalahnya hanya file package.json.
sumber
Saya pikir saya juga menghadapi masalah ini, dan solusi terbaik yang saya temukan adalah melihat konsol saya dan mencari tahu kesalahan yang sedang terjadi. Jadi, saya membacanya dengan seksama dan menemukan bahwa masalahnya adalah saya tidak menentukan repo, deskripsi, dan nama saya yang valid di
package.json
. Saya menambahkan potongan informasi itu dan semuanya baik-baik saja.sumber