Cara memperbarui npm


124

Saya mencoba memasang boilerplate mean.io. Gagal saat dijalankan sudo npm install -g meanio@latest. Sebelum gagal, dicatat bahwa itu 'ingin' npm versi 1.4.x, sedangkan saya menginstal 1.2.18. Jadi saya mencoba memperbarui npm ke yang terbaru; beberapa cara. Terakhir adalah ...

ubuntu@ip-xxx-xx-xx-xxx:~$ sudo npm install -g npm
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@1.4.7 /usr/local/lib/node_modules/npm

ubuntu@ip-xxx-xx-xx-xxx:~$ npm --version
1.2.18

Mengapa masih menampilkan versi 1.2.18, padahal saya baru saja memperbarui ke 1.4.7?


12
Lakukansudo npm update npm -g
Tim

1
Jika Anda dapat mengambil risiko penggunaan PPA yang tidak didukung, coba launchpad.net/~chris-lea/+archive/node.js
TeTeT

sudo npm install npm -g membantu saya
thinklinux


Ini harus ada di Ask Ubuntu
Ulysse BN

Jawaban:


189

Ini akan memperbarui npm menggunakan npm itu sendiri:

sudo npm install npm -g

Jika Anda terjebak, coba sudo npm update npm -g. Semua kredit diberikan kepada Tim Castelijns. Saya telah mengujinya di ubuntu 14.04, npm 1.3.10


Perhatikan bahwa jika Anda menggunakan nvm untuk mengelola beberapa versi di lingkungan dev lokal Anda misalnya untuk tujuan pengujian , semua versi yang diinstal (dicantumkan oleh nvm ls) ada di ~ / .nvm, oleh karena itu Anda mengabaikan instalasi seluruh sistem (yaitu, hilangkan sudo):

npm install npm -g

PERUSAHAAN DEBIAN

Untuk praktik perusahaan penuh, pertimbangkan nodeource.com :

curl -sL https://deb.nodesource.com/setup | sudo bash -

seperti yang dijelaskan di sini .

USAHA LAINNYA

Untuk distribusi non-debian, lihat di node github wiki https://github.com/joyent/node/wiki/installing-node.js-via-package-manager halaman unduh https://nodejs.org/en/download /

Untuk pemahaman historis: Chis Lea mempertahankan PPA-nya tetapi sekarang bergabung dengan nodeource .


Saya akan merekomendasikan menggunakan repositori PPA sehingga Anda membiarkan pengelola paket ubuntu mempertahankan pembaruan bersama dengan yang lainnya.
henry74

Tentang server produksi, ya, mungkin. Tetapi pada dev Anda benar-benar ingin menjamin Anda mendapatkan barang langsung dari pengelola paket npm, bukan pengelola PPA
Yauhen Yakimovich

Saya tidak setuju. Anda tidak ingin dev berbeda dari produksi atau Anda akan mengalami masalah penerapan untuk versi yang berbeda.
henry74

1
Sekali lagi tergantung pada seberapa paranoid Anda, mempercayai PPA Chis Lea mungkin dipertanyakan. Selalu ada keputusan yang mungkin tentang seberapa banyak dependensi kritis dalam proyek yang baru saja dilepas sebagai salinan lokal. Jika Anda tidak bekerja di bank tetapi melakukan proyek open source, Anda mungkin tidak perlu khawatir tentang produksi :) Saya akan menautkan node wiki di sini hanya dengan mencantumkan semua alternatif. Secara pribadi saya tidak terlalu menyukai tag PPA vs. github dalam hal distribusi kode.
Yauhen Yakimovich

Tidak perlu menggunakan PPA Chris. Gunakan yang resmi dari sumber node.
henry74

43

jika jawaban pengguna3223763 tidak berfungsi, Anda dapat mencoba ini:

sudo apt-get remove nodejs ^node-* nodejs-*
sudo apt-get autoremove
sudo apt-get clean
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs

Kemudian :

curl https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | sh

Setelah ini, buka terminal baru dan periksa versi npm:

npm --version

EDIT / PERBARUI:

Hari ini versi nvm terakhir adalah:

https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh

Jadi perintah CURL adalah: v0.25.4 bukan v0.13.1

curl https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | sh

Anda dapat memeriksa https://github.com/creationix/nvm/releases untuk menggunakan versi yang benar untuk peningkatan lebih lanjut


3
user3223763 tidak berfungsi untuk saya, begitu juga dengan memperbarui sendiri npm. Terima kasih Daniel
hectorg87

3
Saya dapat mengonfirmasi metode ini membantu memperbarui npm. Metode sebelumnya memiliki library yang tidak terpenuhi dependensinya atau akan mengupdate npm tetapi tidak akan mengupdate jalur / lingkungan untuk menggunakan lokasi baru.
Will824

Ini juga berhasil untuk saya, jawaban lain tidak ada di Ubuntu 14.0.4
islanddave

1
Ini berfungsi untuk saya menggunakan Ubuntu 14.04 yang diinstal di Chromebook dengan Crouton. Tidak ada hal lain yang saya temukan secara online berhasil
Niall

17

jangan lupa untuk menutup dan memulai kembali jendela terminal;)

(setidaknya jika Anda ingin mencentang "npm --version" di terminal)

sudo npm install npm -g

itu juga berhasil bagi saya


13

Sepertinya Anda menggunakan Ubuntu (dari baris perintah yang Anda tampilkan). Untuk memperbarui npmdan nodejsAnda dapat menggunakan repositori PPA:

sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs npm

1
E: The repository 'http://ppa.launchpad.net/chris-lea/node.js/ubuntu bionic Release' does not have a Release file. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details. untuk Ubuntu 18.04
anon58192932

Kesalahan : 11 ppa.launchpad.net/chris-lea/node.js/ubuntu bionic Rilis 404 Tidak Ditemukan [IP: 91.189.95.83 80]
Kiran Reddy

1
untuk menghilangkan kesalahan yang mengganggu, jalankan: rm /etc/apt/sources.list.d/cooperjona-ubuntu-nitrotasks-bionic.list
Abdelghani AINOUSS

9

Mencoba opsi di atas pada Ubuntu 14.04, tetapi mereka terus-menerus menghasilkan kesalahan ini:

npm ERR! paket tar Kesalahan membaca /root/tmp/npm-15864/1465947804069-0.4854120113886893/package

Kemudian temukan solusi ini secara online:

1) Bersihkan cache npm terlebih dahulu:

sudo npm cache clean -f

2) Instal n modul NPM:

sudo npm install -g n

3) Mulailah instalasi dengan memilih versi node yang akan diinstal: stable atau terbaru , kami akan menggunakan stable di sini:

sudo n stable

4) Periksa versi node:

node -v

5) Periksa versi npm:

npm -v

Jawaban ini dapat menggunakan beberapa perluasan untuk menjelaskan apa yang dilakukan oleh perintah yang kurang jelas.
Madbreaks

6

Untuk mendapatkan versi stabil terbaru, jalankan saja

npm install npm@latest -g

Ini bekerja dengan baik untuk saya!



2

mengupgrade ke nodejs v0.12.7

 # Note the new setup script name for Node.js v0.12
 curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

 # Then install with:
 sudo apt-get install -y nodejs

Sumber dari nodeource.com



1
npm i -g npm

      Update available 4.5.0 → 4.6.1    │
   │     Run npm i -g npm to update 

inilah yang npm rekomendasikan ketika di terminal, potongan kedua langsung disalin dan ditempel dari terminal saya

Catatan: saya menggunakan mac


Pertanyaannya secara khusus tentang ubuntu, bukan osx. Jika saya mencoba perintah Anda di ubuntu, npmakan gagal dengan Error: Cannot find module 'process-nextick-args'. Anda harus menghapus jawaban Anda.
Anthony Kong

1

Periksa versi node Anda node -v dan versi npm Anda npm -v Kemudian Untuk memperbarui npm Anda , ketik ini ke terminal Anda: sudo npm install npm @ latest -g

NB: OS Berbasis Debian {ubuntu atau Linux mint}


1

NPM mengembalikan versi lama setelah berjalan $ sudo npm install npm -g.

Memulai ulang terminal (yaitu menutup dan membuka kembali) memperbaiki masalah untuk saya dan $ npm --version mulai mengembalikan versi yang diharapkan.

* @Rimian menyebutkan kebutuhan untuk memuat ulang terminal dalam komentar untuk jawaban lain.


0

Jika Anda ingin memperbarui npm ke versi tertentu, Anda dapat menggunakan ini:

npm install npm@version-number


0

Periksa versi node Anda node -vdan versi npm Anda npm -v Kemudian Untuk memperbarui npm Anda, ketik ini ke terminal Anda: npm install npm@latest -g

Semoga saya bisa membantu. Salam


0

Inilah yang berhasil untuk saya di ubuntu curl -L https://www.npmjs.com/install.sh | sh



0

Anda dapat menggunakan npmmanajer paket:

npm install npm@latest

Pemasangan ini npmmenggunakan dirinya sendiri @ versi terbaru.


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.