Bagaimana cara memperbarui devDependencies di NPM?


155

npm updatetampaknya hanya memperbarui paket di dependencies, tetapi bagaimana devDependencies.

Saat ini Anda dapat menginstal devDependenciesdengan menjalankan npm install ., tetapi ini tidak berhasilnpm update .

Ada ide?


1
Saya hanya mengalami hal yang sama. Saya terkejut dengan asimetri antara npm installdan npm update. Saya mengatasinya dengan menghapus node_modulesdirektori saya dan kemudian berjalan npm installlagi, tapi sepertinya ada cara yang lebih baik.
Joe White

7
Saya membuka laporan bug untuk perilaku ini. Kita akan lihat apa yang terjadi.
Joe White

Ini mungkin karena para npm linkdev NPM berpikir bahwa orang akan menggunakannya untuk melakukan lingkungan dev.
Julian Knight

Jawaban:


157

Untuk memperbarui package.json di samping modul lokal, jalankan

npm update --save-dev

Atau, perintah yang sama untuk menghemat waktu

npm update -D

Anda dapat melihat detail lengkap pembaruan, atau perintah apa pun untuk masalah ini

npm help <cmd>

20
npm update -Dtidak bekerja untuk saya, itu tidak memperbarui apa pun.
AmazingDreams

27
Mengapa ini ditandai sebagai jawaban yang benar ketika pertanyaannya bukan bagaimana menyimpan pembaruan package.jsontetapi bagaimana membuat npm updatepembaruan devDependencies?
Alejandro García Iglesias

@ onalbi: tidak. Inilah utas yang melacak masalah .
Dan Dascalescu

1
npm update --save-devbekerja dengan baik untuk saya. Menggunakan node v12.11.0dan npmv6.11.3
maximedupre



4

Jika Anda menggunakan versi npm yang sudah usang, mungkin masalahnya. Jadi sebelum perintah lain dijalankan:

sudo npm install npm -g

atau (jika di atas tidak berhasil):

sudo npm update npm -g

Kemudian jalankan kembali konsol (agar perubahan diterapkan). Sekarang Anda dapat memeriksa yang baru npm --versiondan jika sudah selesai jalankan:

npm update

atau (jika Anda suka):

npm update --save-dev

Sayangnya, ini tidak berfungsi di npm 5. Inilah utas yang melacak masalah .
Dan Dascalescu

2

Salah satu (lambat) cara untuk melakukan pembaruan paksa, adalah menghapus direktori node_modules, dan kemudian lakukan npm installlagi.

Ini adalah bug yang diketahui dari npm updateperintah, yang telah diperbaiki pada cabang pengembangan npm, lihat di sini: https://github.com/isaacs/npm/pull/3863

Seharusnya segera mendarat di versi stabil terbaru npm.


1
Dalam hal npm> v5 Anda juga perlu menghapus package-lock.jsonuntuk membuat ini berfungsi, jika tidak hanya akan menginstal versi yang tercantum dalam file kunci itu.
karfau

Juga, ini tidak akan diperbarui package.jsonuntuk Anda. Inilah utas yang melacak masalah .
Dan Dascalescu

2

Saya mengalami masalah yang sama dengan OP, dan tidak menemukan solusi, jadi saya memutuskan untuk menulis sebuah plugin Grunt yang akan secara otomatis memperbarui devDependencies saya ..

Ada di Github, saya ingin mendapatkan masukan dan kolaborasi untuk menjadikannya alat terbaik yang belum disediakan NPM.

Pada dasarnya ini akan memperbarui secara otomatis dependensi pengembangan Anda yang sudah usang dengan Grunt Task yang sederhana.

https://github.com/pgilad/grunt-dev-update


2

Apa yang berhasil bagi saya adalah menginstal dependensi dev individual seperti ini

npm install react-test-renderer@15.6.1 --save --only=dev

1

Langkah-langkah ini berhasil bagi saya:

  1. npm install -g npm-check-updates
  2. ncu -u
  3. npm update
  4. npm install
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.