Node.js dan versi NPM dengan NVM

Terjemahan kami sebelumnya tentang fungsi baru dari versi ke-15 Node.js diterima dengan sangat baik oleh para pembaca Habr, jadi hari ini kami memutuskan untuk melanjutkan topik dan memberi tahu Anda cara mengkonfigurasi NVM dengan Node.js dan NPM 7 versi 15 .


Node.js versi 15 dirilis pada 20 Oktober 2020. Ini dikirimkan dengan npm 7 dan banyak fitur baru. Apakah Anda sudah mencoba versi baru?



Tapi tunggu dulu! Node.js 15 dan npm 7 berisi perubahan yang dapat merusak. Bukankah peningkatan ini akan merugikan proyek yang sudah ada?



Secara teori, itu bisa menyakitkan!







Untungnya, kami memiliki NVM (Node Version Manager) untuk menyelamatkan kami dari bahaya ini. Mari kita lihat lebih dekat alat ini untuk memperbarui versi node.js dan npm tanpa masalah.



Pasang NVM



nvm



mengelola versi node.js dan npm. Ini dipasang untuk pengguna tertentu dan dapat dipanggil secara terpisah untuk setiap shell. nvm



bekerja dengan shell yang kompatibel dengan POSIX (sh, dash, ksh, zsh, bash), termasuk platform: unix, macOS dan windows WSL.



nvm



dapat diinstal menggunakan perintah curl atau wget:



$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
      
      







Script install.sh



klon nvm repositori di ~/.nvm



dan mencoba untuk menambahkan baris sumber dari fragmen berikut ke file profil yang diinginkan ( ~/.bash_profile



, ~/.zshrc



, ~/.profile



atau ~/.bashrc



).



export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
      
      





Di dalam ~/.bash_profile



kita dapat melihat bahwa garis ditambahkan:



export NVM_DIR="/Users/fuje/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
      
      





Menggunakan NVM



Jadi, kami telah menginstal nvm. Sekarang kami menggunakan perintah ini untuk menginstal versi terbaru node.js:



$ nvm install node
Downloading and installing node v15.4.0...
Downloading https://nodejs.org/dist/v15.4.0/node-v15.4.0-darwin-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v15.4.0 (npm v7.0.15)
      
      





Output data contoh di atas menunjukkan bahwa NPM 7.0.15



digunakan dengan node.js 15.4.0



. Mari kita periksa:



$ node -v
v15.4.0
$ npm -v
7.0.15
      
      





Kami juga dapat menentukan versi yang diperlukan untuk instalasi. Format semantik versi ditentukan oleh SemVer :



$ nvm install 10.14.0
Downloading and installing node v10.14.0...
Downloading https://nodejs.org/dist/v10.14.0/node-v10.14.0-darwin-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v10.14.0 (npm v6.4.1)
      
      





Jika versi yang ditentukan sudah diinstal, itu tidak diinstal ulang:



$ nvm install 10.14.0
v10.14.0 is already installed.
Now using node v10.14.0 (npm v6.4.1)
      
      





Kami dapat menampilkan semua versi yang diinstal:



$ nvm ls
->     v10.14.0
       v10.15.0
       v10.16.0
       v12.16.0
        v13.9.0
        v15.4.0
         system
default -> 12.16.0 (-> v12.16.0)
node -> stable (-> v15.4.0) (default)
stable -> 15.4 (-> v15.4.0) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/fermium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.23.0 (-> N/A)
lts/erbium -> v12.20.0 (-> N/A)
lts/fermium -> v14.15.1 (-> N/A)
      
      





Pada contoh keluaran di atas, simbol ->



menunjukkan bahwa versi node.js saat ini adalah 10.14.0



. Panah juga mewakili nilai untuk default



( 12.16.0



), node



( 15.4.0



) dan stable



( 15.4.0



).



nvm use



menggantikan versi saat ini:



$ nvm use 12.16.0
Now using node v12.16.0 (npm v6.14.8)
$ nvm use 10.16.0
Now using node v10.16.0 (npm v6.14.5)
$ nvm use 13.9.0
Now using node v13.9.0 (npm v6.13.7)
$ nvm use default
Now using node v12.16.0 (npm v6.14.8)
$ nvm use node
Now using node v15.4.0 (npm v7.0.15)
$ nvm use stable
Now using node v15.4.0 (npm v7.0.15)
      
      





Anda mungkin bertanya bagaimana cara v10.16.0



menggunakan versi npm than v13.9.0



. Tugas ini dapat diselesaikan dengan menggunakan perintah berikut:



$ nvm use 10.16.0
$ npm install -g npm@6.14.5
      
      





Perintah ini memungkinkan Anda mendapatkan versi npm terbaru yang didukung untuk versi Node.js saat ini:



$ nvm install-latest-npm
      
      





nvm use



menginstal versi yang benar hanya untuk shell saat ini. Jika Anda mengubah shell, versi node.js yang baru diperbarui akan hilang.



Bagaimana cara membuat versi Node.js tetap ada?



Versi default adalah versi yang didistribusikan ke semua shell.



Perintah ini nvm alias



memungkinkan Anda untuk mengatur versi default.



$ nvm alias default 10.16.0
      
      







Untuk kenyamanan, Anda dapat membuat file .nvmrc



yang menerima format SemVer, node



atau default



. Setelah itu nvm use



, nvm install



, nvm exec



, nvm run



dan nvm which



akan menggunakan versi ditentukan dalam file .nvmrc



, kecuali baris perintah lain.



$ cat .nvmrc
15.4.0
$ nvm use
Found '/Users/fuje/.nvmrc' with version <15.4.0>
Now using node v15.4.0 (npm v7.0.15)
      
      





Kami dapat memeriksa versi saat ini dengan perintah berikut:



$ nvm current
v15.4.0
      
      





ls-remote



menampilkan semua versi yang tersedia, tetapi bersiaplah untuk daftar yang sangat panjang.



$ nvm ls-remote
      
      





Perhatikan bahwa nama versi yang disingkat secara signifikan mempersingkat seluruh daftar.



$ nvm ls-remote 15
        v15.0.0
        v15.0.1
        v15.1.0
        v15.2.0
        v15.2.1
        v15.3.0
->      v15.4.0
      
      





nvm which



menunjukkan jalur ke eksekusi di mana ia nvm



diinstal. Kami telah menginstal versi node.js like 10.14.0



, 10.15.0



dan 10.16.0



. Berikut hasilnya nvm which



:



$ nvm which 10.14.0
/Users/fuje/.nvm/versions/node/v10.14.0/bin/node
$ nvm which 10.15.0
/Users/fuje/.nvm/versions/node/v10.15.0/bin/node
$ nvm which 10.16.0
/Users/fuje/.nvm/versions/node/v10.16.0/bin/node
$ nvm which 10.15
/Users/fuje/.nvm/versions/node/v10.15.0/bin/node
$ nvm which 10.12
N/A: version "v10.12" is not yet installed.
You need to run "nvm install 10.12" to install it before using it.
$ nvm which 10
/Users/fuje/.nvm/versions/node/v10.16.0/bin/node
      
      





Versi Node.js yang ditentukan dapat digunakan secara langsung untuk meluncurkan aplikasi:



$ nvm run 10.15.0 app.js
      
      





Alternatifnya, perintah ini dijalankan node app.js



dengan variabel PATH yang menunjukkan versinya 10.15.0



.



$ nvm exec 10.15.0 node app.js
      
      





Jika Anda membutuhkan lebih banyak perintah nvm, jalankan perintah help



:



$ nvm --help
      
      







Peningkatan NVM



Kita dapat menggunakan nvm



node.js dan npm untuk memperbarui. Tetapi bagaimana cara memperbarui diri saya sendiri nvm



?



Mari mencoba!



Sebelum memperbarui, kami telah menginstal nvm



0.34.0



.



Kami memperbarui ke versi 0.37.2.



$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13527  100 13527    0     0  23046      0 --:--:-- --:--:-- --:--:-- 23083
=> nvm is already installed in /Users/fuje/.nvm, trying to update using git
=> => Compressing and cleaning up git repository
=> nvm source string already in /Users/fuje/.bash_profile
=> bash_completion source string already in /Users/fuje/.bash_profile
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
      
      





Seperti yang dinyatakan dalam output, kita perlu menutup dan membuka kembali terminal untuk menggunakan versi baru:



$ nvm --version
0.37.2
      
      





Dibandingkan dengan versinya 0.34.0



, versi tersebut telah 0.37.2



menambahkan fungsi nvm set-colors



untuk keluaran ke konsol. Menampilkan warna berikut secara







default nvm ls



:







Setel warna baru:



$ nvm set-colors cgYmW
      
      





nvm ls



menampilkan keluaran dengan warna baru:







Kesimpulan



nvm



menyederhanakan kontrol versi node.js dan npm. Kami sekarang pasti siap untuk pindah ke node.js 15 dan npm 7. Semoga ini berguna. Publikasi lain oleh penulis dapat ditemukan di sini .



All Articles