Saya mencoba menjalankan proyek ini https://github.com/Soundnode/soundnode-app setelah memperbarui versi minimatch saya ke 3.10.9, saya mendapatkan kesalahan ini
npm WARN opsional LEWATKAN KETERGANTUNGAN OPSIONAL: fsevents@^1.0.0 (node_modules \ webpack \ node_modules \ watchpack \ node_modules \ chokidar \ node_modules \ fsevents): npm WARN notsup SKipping OPTIONAL DEPENDENCY: Platform tidak didukung untuk [email protected] os ":" darwin "," arch ":" any "} (saat ini: {" os ":" win32 "," arch ":" ia32 "})
konfigurasi saya adalah Node v - 4.4.2 npm v- 3.10.9 im bekerja pada OS windows 32 bit
npm WARN
hanya itu - peringatan yang mungkin perlu diperhatikan, tetapi tidak benar-benar merusak apa pun.Jawaban:
Ini peringatan, bukan kesalahan. Ini terjadi karena
fsevents
merupakan ketergantungan opsional, hanya digunakan saat proyek dijalankan di lingkungan macOS (paket menyediakan 'Akses Asli ke Mac OS-X FSEvents').Dan karena Anda menjalankan proyek Anda di Windows,
fsevents
dilewati sebagai tidak relevan.Ada PR untuk memperbaiki perilaku ini di sini: https://github.com/npm/cli/pull/169
sumber
conditional dependency
lebih baik? Penamaan itu sulit. Saya kira tidak mudah untuk menemukan nama yang baik untuk kasus ini dengan tetap ringkas.Tampaknya ini masih menjadi masalah, menyebabkan penginstalan paket dibatalkan dengan peringatan tentang paket opsional tidak diinstal karena "Platform tidak didukung".
Masalahnya terkait dengan "shrinkwrap" atau
package-lock.json
yang tetap ada setelah setiap eksekusi pengelola paket. Upaya selanjutnya tetap gagal karena file ini direferensikan, bukanpackage.json
.Menambahkan opsi ini ke
npm install
perintah akan memungkinkan paket untuk diinstal lagi.Perintah lengkapnya terlihat seperti ini:
nJoy!
sumber
--no-optional
-bendera untuk kode yang berfungsi hanya untuk menghilangkan peringatan? Mengapa tidak diatur secara default?npm install -f
: github.com/angular/angular/issues/13935Menggunakan parameter --force:
sumber
npm install
saya tidak memiliki peringatan terima kasih!