Saya baru mendengus dan npm. Jadi saya mencoba beberapa "contoh buku masak" di situs ' http://tech.pro/tutorial/1190/package-managers-an-introductory-guide-for-the-uninitiated-front-end-developer#front_end_developers ' . Anda seharusnya tidak perlu melihat ke sana sekarang, tetapi saya pikir akan lebih baik jika membagikan situs ini. Sejauh ini bagus, sampai itu datang ke instalasi global. (Ok, beberapa kesalahan saya harus mencari tahu, tapi sekarang saya sudah bekerja npm).
Ketika sampai pada titik mencoba menginstal sesuatu secara global, saya terjebak.
Apa yang saya lakukan sejauh ini untuk menguji menginstal beberapa paket secara global:
Membuat direktori uji
grunttest
Di dalam direktori itu:
npm install -g jshint
Output yang saya lihat:
npm http GET https://registry.npmjs.org/jshint
npm http 304 https://registry.npmjs.org/jshint
...
npm http 304 https://registry.npmjs.org/string_decoder
C:\Program Files\nodejs\node_modules\npm\jshint -> C:\Program Files\nodejs\node_modules\npm\node_modules\jshinnt
[email protected] C:\Program Files\nodejs\node_modules\npm\node_modules\jshint
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])
Saya baru menyadari 304, yang seharusnya baik-baik saja, karena hanya mengatakan sumber daya tidak diubah sejak instalasi terakhir (beberapa menit sebelumnya).
Memeriksa apakah jshint ada dengan:
`npm -global list`
Keluaran:
[email protected] C:\Program Files\nodejs\node_modules\npm
├── [email protected]
├── [email protected]
├─...
├──
├── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ └── [email protected]
├─┬ [email protected] extraneous
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │ └─... ├── [email protected]
├── [email protected]
└── [email protected]
**npm ERR! extraneous: [email protected] C:\Program Files\nodejs\node_modules\npm\node_modules\jshint npm**
Pertanyaan:
- Mengapa saya mendapatkan npm ERR! asing ...?
- Apa artinya?
- Bagaimana cara mengatasi masalah ini?
Informasi:
Saya menggunakan mesin windows Windows 7, menggunakan cygwin sebagai shell. mencoba hanya jshint ( jshint someTestfile.js
) saja tidak berhasil.
Terima kasih sebelumnya, Meru
jshint myfile.js
harus menjalankan jshintmyfile.js
.grunt-contrib-jshint
tugas di fileGruntfile.js
. Satu-satunya hal yang Anda instal secara global adalahnpm i grunt-cli -g
yang memberi Anda akses untuk menjalankangrunt
perintah untuk menjalankan fileGruntfile.js
. Lihat panduan ini untuk info lebih lanjut: gruntjs.com/getting-startednpm prune
untuk menghapusnya.npm prune --your-env
1 & 2: Ini berarti Anda tidak memiliki jshint yang terdaftar di file package.json proyek Anda, tetapi itu diinstal secara global. Jadi itu bukan masalah besar.
3: Untuk menghindari kesalahan asing ini , Anda dapat menjalankan atau menjalankan ulang penginstalan dengan opsi
--save
. Ini akan memperbarui secara otomatis file package.json Anda:Atau perlu memperbarui file package.json Anda secara manual dengan file
"dependencies": {...}
sumber
--save
tidak bekerja sama dengan-g
. Daftar paket global tidak memiliki package.json.Saya menyelesaikan ini dengan melakukan
npm update
di folder paket induk yang menghapus beberapa paket asing dari daftar dan kemudian melakukannyanpm uninstall <package>
untuk beberapa yang tersisa.Tampaknya berhasil, karena saya tidak mendapatkan kesalahan setelah melakukan ini.
sumber
Saya menyelesaikannya dengan menggabungkan semua jawaban. Awalnya saya menginstal paket secara global.
Karena npm menginstal paket ini juga secara global tetapi tidak menambahkannya ke file package.json lokal saya, saya harus melakukan sesuatu.
Saya memilih, solusi untuk menghapus yang lokal dan kemudian menginstalnya secara global.
Dengan cara ini saya tidak memiliki peringatan lagi dan tidak mengacaukan file package.json.
sumber
Saya kasus saya, saya melihat 'npm ERR ini! pesan 'asing' di terminal cygwin saya ketika saya melakukan 'npm ls'. Saya pikir ini adalah semacam pengaturan yang rusak secara global setelah banyak mengutak-atik. Saya mempelajari pengamatan berikut di sini:
Saya 'rm package.json' dan 'npm ls' tidak lagi menampilkan pesan kesalahan. Jadi saya katakan, itu selalu memeriksa lokasi saat ini untuk keberadaan folder 'node_modules' dan file package.json karena ini diprioritaskan pertama kali di cek dan jika ini hilang, pemeriksaan berlanjut ke folder induk dan seterusnya, dan jika Anda telah mengotak-atik banyak cuplikan kode, maka Anda mungkin telah menyebarkan banyak sekali folder node_modules dan file package.json. Tidak ada yang benar-benar rusak di sini, tidak seperti pengalaman yang kami alami saat melakukan pengembangan Java / eclipse IDE J2EE atau pada hari-hari ketika kami harus menggunakan regedit untuk mengubah pengaturan di Windows.
sumber
Dalam kasus saya, itu karena nama paket di
package.json
filenya tidak sama dengan nama depensi yang tercantum dipackage.json
modul dependen. Kesalahan saya, karena ini adalah modul baru yang saya buat, tetapi sulit dikenali, karena npm tidak akan memberikan petunjuk apa pun.Ini terjadi saat menggunakan
dependencies: { "my-module": "file:local-modules/mymodule" }
sintaks, dengan kesalahan ketik pada nama "modul-saya".sumber
Ini karena paket Anda tidak ada di package.json Anda. Jika Anda menambahkannya, masalah akan terpecahkan, silakan lihat gambar di bawah ini:
sumber