1656554574
Nếu bạn đã làm việc với Node một thời gian, rất có thể bạn sẽ phát hiện ra rằng các dự án của bạn - hoặc dự án bạn đang làm - được viết cho phiên bản Node cũ hơn. Điều đó có nghĩa là chúng sẽ không hoạt động như mong đợi với phiên bản mới nhất.
Trong trường hợp đó, trình quản lý phiên bản Node có thể giúp bạn tiết kiệm thời gian quý báu khi cài đặt và chuyển đổi qua lại giữa các phiên bản Node khác nhau.
Hôm nay tôi sẽ giới thiệu với các bạn fnm
(Fast Node Manager), một trình quản lý phiên bản Node, được viết bằng Rust với sự đơn giản và tốc độ. fnm
cũng có hỗ trợ nền tảng chéo.
Ở đây tôi sẽ chỉ đề cập đến việc cài đặt fnm
hệ thống Linux và zsh
shell. Xem tài liệu hướng dẫn cài đặt cho các nền tảng và trình bao khác.
Trước tiên, hãy đảm bảo rằng curl
hệ thống của bạn đã được cài đặt. Sau đó chạy phần sau để cài đặt fnm
:
curl -fsSL https://fnm.vercel.app/install | bash -s -- --skip-shell
Nó sẽ cài đặt fnm
trong $HOME/.fnm/
thư mục của bạn.
Việc cập nhật fnm
cũng giống như cài đặt lại bằng lệnh trên.
Còn một bước quan trọng nữa. Chỉ cần thêm thông tin sau vào .zshrc
tệp của bạn:
# fnm
export PATH=/home/$USER/.fnm:$PATH
eval "$(fnm env --use-on-cd --version-file-strategy=recursive)"
Cài đặt tập lệnh hoàn thành là tùy chọn . Nếu bạn đang thắc mắc về vai trò của bước này, đây là những gì nó làm: nó cố gắng tự động hoàn thành lệnh từng phần mà bạn nhập liên quan đến fnm khi bạn nhấn phím TAB. Ví dụ: nếu bạn nhập fnm ls-
và nhấn phím TAB, nó sẽ tự động hoàn thành fnm ls-remote
.
fnm
đi kèm với tất cả các mã hoàn thành cho các trình bao khác nhau với hệ nhị phân của nó. Bạn sẽ phải dán mã đó vào tệp có tên _fnm
trong thư mục được chỉ định trong FPATH
biến môi trường:
fnm completions --shell zsh > <a_fpath_dir>/_fnm
Xem kết quả đầu ra của echo $FPATH
để lấy tất cả các thư mục có thể có và thay thế <a_fpath_dir>
bằng một thư mục thực tế. Bạn nên sử dụng đường dẫn cục bộ của người dùng. Nếu không có đường dẫn nào như vậy, bạn có thể đặt một đường dẫn trong đường dẫn của mình .zshrc
bằng cách thêm dòng này:
fpath=(/home/$USER/your/favorite/path/here $fpath)
fnm
§Để xem tất cả các phiên bản Node khác nhau mà bạn có thể cài đặt, hãy chạy:
fnm ls-remote
Nó sẽ in tất cả các phiên bản như dưới đây:
.
.
.
v16.15.0 (Gallium)
v16.15.1 (Gallium)
v17.0.0
v17.0.1
v17.1.0
v17.2.0
v17.3.0
v17.3.1
v17.4.0
v17.5.0
v17.6.0
v17.7.0
v17.7.1
v17.7.2
v17.8.0
v17.9.0
v17.9.1
v18.0.0
v18.1.0
v18.2.0
v18.3.0
Hãy cài đặt Node của phiên bản v18.3.0
:
fnm install v18.3.0
Để cài đặt Node của phiên bản LTS mới nhất, bạn có thể sử dụng --lts
tùy chọn. Vì vậy, hãy chạy phần sau để cài đặt nó:
fnm install --lts
fnm
cũng hỗ trợ khớp phiên bản một phần. fnm
đoán phiên bản mới nhất hiện có từ đầu vào một phần của bạn. Ví dụ: nếu bạn chỉ làm:
fnm install 17
Nó sẽ cài đặt Node của phiên bản v17.9.1
là phiên bản mới nhất có sẵn bắt đầu bằng 17
. Vì vậy, hãy thử nghiệm với lệnh trên.
Hãy kiểm tra phiên bản Node của bạn bằng cách nhập vào node --version
thiết bị đầu cuối của bạn. Lưu ý rằng cài đặt đầu tiên được sử dụng theo mặc định.
Trước khi xem cách bắt đầu sử dụng một phiên bản Node đã cài đặt khác, hãy xem cách bạn có thể đặt bí danh (tên) cho một phiên bản để bạn có thể tham khảo dễ dàng.
Theo mặc định, phiên bản Node đầu tiên mà bạn cài đặt bằng cách sử dụng fnm
sẽ nhận được default
bí danh.
Cú pháp để đặt bí danh cho một phiên bản là:
fnm alias <version> <name>
Nếu bạn muốn đặt bí danh default
, có một cách viết tắt:
fnm default <version>
Bạn cũng có thể đặt nhiều bí danh cho một phiên bản.
Cú pháp để xóa bí danh là:
fnm unalias <name>
Bạn có thể sử dụng Node của một phiên bản cụ thể bằng use
lệnh phụ:
fnm use 16
Để kiểm tra phiên bản Node hiện tại, chỉ cần chạy:
fnm current
Để liệt kê tất cả các phiên bản Node mà bạn đã cài đặt fnm
, hãy chạy:
fnm ls
Lưu ý rằng bạn có thể bỏ qua fnm
và sử dụng cài đặt Node trên toàn hệ thống trên hệ thống của mình (nếu có) bằng cách sử dụng system
:
fnm use system
Bạn có thể tạo một .node-version
tệp trong thư mục gốc của dự án của mình và chỉ cần ghi phiên bản Node mong muốn của dự án đó vào tệp đó như bên dưới để đính kèm phiên bản Node vào nó:
echo 'v18.3.0' > .node-version
fnm
tôn trọng tệp này. Vì vậy, nếu bạn đang ở trong thư mục đó, bạn chỉ có thể sử dụng fnm install
hoặc fnm use
cài đặt hoặc sử dụng phiên bản đó.
fnm
cũng tôn trọng .nvmrc
hồ sơ (nó tương tự như .node-version
hồ sơ nhưng đến từ nvm
đất liền). Vì vậy, nếu bạn đã sử dụng nvm
trước đó, bạn sẽ có quá trình chuyển đổi suôn sẻ sang fnm
.
fnm
có thể sử dụng các tệp chấm này để phát hiện phiên bản Node và thậm chí bắt đầu sử dụng nó tự động khi sử dụng cd
, điều này thực sự tiện dụng trong hầu hết các trường hợp, vì vậy tôi đã bật chúng trong thiết lập shell bằng cách thêm các cờ sau vào fnm env
lệnh:
--use-on-cd
: Cờ này cho biết fnm
rằng khi bạn cd
vào thư mục gốc của dự án, nó sẽ tự động sử dụng Nút của phiên bản được chỉ định trong .node-version
(hoặc .nvmrc
). Tuyệt, phải không?--version-file-strategy=recursive
: Cờ này và recursive
giá trị của nó về cơ bản cho biết fnm
sử dụng phiên bản Node được chỉ định trong .node-version
(hoặc .nvmrc
) ngay cả khi bạn đang ở trong một thư mục lồng nhau và sử dụng lệnh use
hoặc install
con không có phiên bản. Nó cũng yêu fnm
cầu sử dụng phiên bản Node có bí danh default
khi bạn ra khỏi bất kỳ thư mục dự án nào như vậy và sử dụng use
lệnh con không có phiên bản. Sử dụng cờ này cùng với --use-on-cd
cho phép bạn có được điều kỳ diệu khi tự động sử dụng hoặc cài đặt Node của phiên bản có liên quan (như được mô tả ở đây) khi bạn đi sâu vào và ra khỏi các thư mục dự án như vậy.Nếu các tính năng này cản trở quy trình làm việc của bạn, bạn có thể xóa (các) cờ này bất kỳ lúc nào trong thiết lập shell của mình để tắt chúng.
Gỡ cài đặt một phiên bản của nút rất giống với việc cài đặt nó. Bạn chỉ cần sử dụng lệnh con uninstall
thay vì install
. Đó là nó.
fnm
§Việc xóa fnm
cũng đơn giản như xóa thư mục .fnm
khỏi thư mục của bạn home
và xóa cấu hình cụ thể của nó mà bạn đã thêm vào tệp cấu hình shell của mình. Hãy nhớ cũng xóa tập lệnh hoàn thành.
Dưới đây là bản tóm tắt của tất cả các lệnh mà chúng tôi đã thảo luận trong bài viết này:
# Listing all remote versions
fnm ls-remote
# Listing all installed ones
fnm ls
# Installing
fnm install <version>
# Uninstalling
fnm uninstall <version>
# Installing node of the latest LTS version
fnm install --lts
# Setting an alias
fnm alias <version> <name>
# Shortcut for setting 'default' as an alias
fnm default <version>
# Removing an alias
fnm unalias <name>
# Using a Node of a particular version
fnm use <version>
# Displaying the version of currently used Node
fnm current
Ngoài ra, nếu bạn cần trợ giúp nhanh, fnm
đã có sẵn trợ giúp mà bạn có thể nhận được bất kỳ lúc nào ngay từ thiết bị đầu cuối của mình như bên dưới:
fnm
lệnh:fnm --help
fnm <sub-command> --help
Mã hóa vui vẻ 😄
Nguồn: https://www.freecodecamp.org/news/fnm-fast-node-manager/
1654872139
Nodeをしばらく使用している場合は、プロジェクト(または作業中のプロジェクト)が古いバージョンのNode用に作成されていることに気付くでしょう。つまり、最新バージョンでは期待どおりに機能しません。
その場合、ノードバージョンマネージャーは、異なるノードバージョン間のインストールと切り替えの貴重な時間を節約するのに役立ちます。
今日はfnm
、シンプルさとスピードを念頭に置いてRustで書かれたノードバージョンマネージャーである(Fast Node Manager)を紹介します。fnm
クロスプラットフォームもサポートしています。
fnm
ここでは、Linuxシステムとzsh
シェルのインストールについてのみ説明します。他のプラットフォームおよびシェルのインストール手順については、ドキュメントを参照してください。
まずcurl
、システムにインストールされていることを確認してください。次に、以下を実行してインストールしfnm
ます。
curl -fsSL https://fnm.vercel.app/install | bash -s -- --skip-shell
fnm
それはあなたの$HOME/.fnm/
ディレクトリにインストールされます。
更新 は、上記のコマンドで再インストールするfnm
のと同じです。
もう1つの重要なステップがあります。.zshrc
ファイルに以下を追加するだけです。
# fnm
export PATH=/home/$USER/.fnm:$PATH
eval "$(fnm env --use-on-cd --version-file-strategy=recursive)"
完了スクリプトのインストールはオプションです。このステップの役割について疑問がある場合は、次のようになります。Tabキーを押すと、fnmに関連して入力した部分的なコマンドをオートコンプリートしようとします。たとえばfnm ls-
、Tabキーを入力して押すと、オートコンプリートされて。になりfnm ls-remote
ます。
fnm
さまざまなシェルのすべての完了コードとそのバイナリが付属しています。そのコードを、環境変数_fnm
で指定されたディレクトリにある名前のファイルに貼り付ける必要があります。FPATH
fnm completions --shell zsh > <a_fpath_dir>/_fnm
の出力を参照してecho $FPATH
、可能なすべてのディレクトリを取得<a_fpath_dir>
し、実際のディレクトリに置き換えてください。ユーザーのローカルパスを使用することをお勧めします。そのようなパスがない場合は、次の.zshrc
行を追加してパスを設定できます。
fpath=(/home/$USER/your/favorite/path/here $fpath)
fnm
インストールできるすべての異なるノードバージョンを表示するには、次のコマンドを実行します。
fnm ls-remote
以下のようにすべてのバージョンが印刷されます。
.
.
.
v16.15.0 (Gallium)
v16.15.1 (Gallium)
v17.0.0
v17.0.1
v17.1.0
v17.2.0
v17.3.0
v17.3.1
v17.4.0
v17.5.0
v17.6.0
v17.7.0
v17.7.1
v17.7.2
v17.8.0
v17.9.0
v17.9.1
v18.0.0
v18.1.0
v18.2.0
v18.3.0
バージョンのノードをインストールしましょうv18.3.0
:
fnm install v18.3.0
最新のLTSバージョンのノードをインストールするために、--lts
オプションを使用できます。したがって、以下を実行してインストールします。
fnm install --lts
fnm
部分的なバージョンマッチングもサポートします。fnm
部分的な入力から利用可能な最新バージョンを推測します。たとえば、次のようにします。
fnm install 17
v17.9.1
で始まる最新バージョンのノードをインストールし17
ます。したがって、上記のコマンドを試してみてください。
ターミナルに入力して、ノードのバージョンを確認しましょうnode --version
。デフォルトでは、最初にインストールされたものが使用されることに注意してください。
インストールされている別のバージョンのNodeの使用を開始する方法を確認する前に、エイリアス(名前)をバージョンに設定して、簡単に参照できるようにする方法を見てみましょう。
デフォルトでは、を使用してインストールする最初のバージョンのNodeがエイリアスをfnm
受け取ります。default
バージョンのエイリアスを設定するための構文は次のとおりです。
fnm alias <version> <name>
エイリアスを設定する場合default
は、省略形があります。
fnm default <version>
バージョンに複数のエイリアスを設定することもできます。
エイリアスを削除する構文は次のとおりです。
fnm unalias <name>
use
サブコマンドを使用して、特定のバージョンのノードを使用できます。
fnm use 16
現在のノードのバージョンを確認するには、次のコマンドを実行します。
fnm current
インストールしたすべてのノードバージョンを一覧表示するには、次のコマンドをfnm
実行します。
fnm ls
fnm
:を使用して、システムへのノードのシステム全体のインストール(存在する場合)をバイパスして使用できることに注意してくださいsystem
。
fnm use system
プロジェクトのルートにファイルを作成し、.node-version
そのプロジェクトの目的のノードバージョンを次のようにそのファイルに書き込んで、ノードバージョンをプロジェクトにアタッチできます。
echo 'v18.3.0' > .node-version
fnm
このファイルを尊重します。したがって、そのディレクトリにいる場合は、そのバージョンを使用するか、インストールまたは使用することができfnm install
ますfnm use
。
fnm
また、ファイルを尊重し.nvmrc
ます(ファイルに似ていますが、土地.node-version
から来ました)。nvm
したがって、nvm
以前に使用した場合は、にスムーズに移行できfnm
ます。
fnm
これらのドットファイルを使用してノードのバージョンを検出し、使用時に自動的に使用を開始することもできますcd
。これはほとんどの場合非常に便利なので、fnm env
コマンドに次のフラグを追加することで、環境変数の設定ですでに有効にしています。
--use-on-cd
:このフラグはfnm
、プロジェクトのルートディレクトリに移動すると、 (または)cd
で指定されたバージョンのノードを自動的に使用する必要があることを示します。かっこいいですね。.node-version.nvmrc
--version-file-strategy=recursive
:このフラグとそのrecursive
値は、基本的に、ネストされたディレクトリにいて、バージョンなしでorサブコマンドを使用している場合でも、 (または)fnm
で指定されたノードバージョンを使用するように指示します。また、そのようなプロジェクトディレクトリの外にいて、バージョンなしでサブコマンドを使用しているときに、エイリアス化されたノードバージョンを使用するように指示します。このフラグを一緒に使用すると、そのようなプロジェクトディレクトリに深く出入りするときに、関連するバージョンのノードを自動的に使用またはインストールする魔法を使うことができます(ここで説明します)。.node-version.nvmrcuseinstallfnmdefaultuse--use-on-cd
これらの機能がワークフローに干渉する場合は、環境変数の設定でいつでもこれらのフラグを削除してオフにすることができます。
ノードのバージョンをアンインストールすることは、それをインストールすることと非常に似ています。uninstall
の代わりにサブコマンドを使用する必要がありますinstall
。それでおしまい。
fnm
削除は、ディレクトリをから削除し、シェル構成ファイルに追加した特定の構成を削除fnm
するのと同じくらい簡単です。完了スクリプトも削除することを忘れないでください。.fnmhome
以下は、この記事で説明したすべてのコマンドの概要です。
# Listing all versions
fnm ls-remote
# Listing all installed ones
fnm ls
# Installing
fnm install <version>
# Uninstalling
fnm uninstall <version>
# Installing the latest LTS version
fnm install --lts
# Setting an alias
fnm alias <version> <name>
# Removing an alias
fnm unalias <name>
# Using a version
fnm use <version>
# Displaying the current version
fnm current
また、クイックヘルプが必要な場合は、fnm
以下のようにターミナルからいつでも取得できるヘルプが組み込まれています。
fnm
コマンドのヘルプ:fnm --help
fnm <sub-command> --help
気に入った場合は、 GitHubfnm
でスターを付けることを忘れないでください。今よりも多くの星に値すると思います。
ハッピーコーディング😄
このストーリーは、もともとhttps://www.freecodecamp.org/news/fnm-fast-node-manager/で公開されました
#nodejs #fnm
1654871960
Si ha estado trabajando con Node por un tiempo, lo más probable es que descubra que sus proyectos, o uno en el que está trabajando, están escritos para una versión anterior de Node. Eso significa que no funcionarán como se esperaba con la última versión.
En ese caso, un administrador de versiones de Node puede ayudarlo a ahorrar un tiempo valioso instalando y cambiando entre diferentes versiones de Node.
Hoy les presentaré fnm
(Fast Node Manager), un administrador de versiones de Node, escrito en Rust con la simplicidad y la velocidad en mente. fnm
también tiene soporte multiplataforma.
Aquí solo cubriré la instalación de fnm
para sistemas Linux y el zsh
shell. Consulte la documentación para obtener instrucciones de instalación para otras plataformas y shells.
Primero asegúrese de que curl
esté instalado en su sistema. Luego ejecute lo siguiente para instalar fnm
:
curl -fsSL https://fnm.vercel.app/install | bash -s -- --skip-shell
Se instalará fnm
en su $HOME/.fnm/
directorio.
Actualizar fnm
es lo mismo que instalarlo de nuevo con el comando anterior.
Hay un paso más importante. Simplemente agregue lo siguiente a su .zshrc
archivo:
# fnm
export PATH=/home/$USER/.fnm:$PATH
eval "$(fnm env --use-on-cd --version-file-strategy=recursive)"
La instalación del script de finalización es opcional . Si se pregunta cuál es la función de este paso, esto es lo que hace: intenta completar automáticamente el comando parcial que escribe relacionado con fnm cuando presiona la tecla TAB. Por ejemplo, si escribe fnm ls-
y presiona la tecla TAB, se completará automáticamente en fnm ls-remote
.
fnm
viene con todos los códigos de finalización para diferentes shells con su binario. Deberá pegar ese código en un archivo con nombre _fnm
en un directorio especificado en la FPATH
variable de entorno:
fnm completions --shell zsh > <a_fpath_dir>/_fnm
Vea el resultado de echo $FPATH
para obtener todos los directorios posibles y reemplácelos <a_fpath_dir>
con un directorio real. Se recomienda utilizar una ruta local de usuario. Si no existe tal ruta, puede establecer una en su .zshrc
agregando esta línea:
fpath=(/home/$USER/your/favorite/path/here $fpath)
fnm
Para ver todas las diferentes versiones de Node que puede instalar, ejecute:
fnm ls-remote
Imprimirá todas las versiones como a continuación:
.
.
.
v16.15.0 (Gallium)
v16.15.1 (Gallium)
v17.0.0
v17.0.1
v17.1.0
v17.2.0
v17.3.0
v17.3.1
v17.4.0
v17.5.0
v17.6.0
v17.7.0
v17.7.1
v17.7.2
v17.8.0
v17.9.0
v17.9.1
v18.0.0
v18.1.0
v18.2.0
v18.3.0
Instalemos el nodo de la versión v18.3.0
:
fnm install v18.3.0
Para instalar Node de la última versión de LTS, puede usar la --lts
opción. Así que ejecuta lo siguiente para instalarlo también:
fnm install --lts
fnm
también es compatible con la coincidencia de versiones parciales. fnm
adivina la última versión disponible de su entrada parcial. Por ejemplo, si solo haces:
fnm install 17
Instalará el Nodo de la versión, v17.9.1
que es la última versión disponible que comienza con 17
. Así que experimenta con el comando anterior.
Verifiquemos su versión de Nodo ingresando node --version
en su terminal. Tenga en cuenta que el primero instalado se utiliza de forma predeterminada.
Antes de ver cómo comenzar a usar una versión instalada diferente de Node, veamos cómo puede establecer un alias (nombre) para una versión para que pueda consultarla fácilmente.
De manera predeterminada, la primera versión de Node que instala fnm
recibe el default
alias.
La sintaxis para establecer un alias para una versión es:
fnm alias <version> <name>
Si desea establecer el alias default
, hay una forma abreviada:
fnm default <version>
También puede establecer varios alias para una versión.
La sintaxis para eliminar un alias es:
fnm unalias <name>
Puede usar un Nodo de una versión particular usando el use
subcomando:
fnm use 16
Para verificar la versión actual de Node, simplemente ejecute:
fnm current
Para enumerar todas las versiones de Node que instaló con fnm
, ejecute:
fnm ls
Tenga en cuenta que puede omitir fnm
y utilizar la instalación de Node en todo el sistema en su sistema (si corresponde) mediante el uso de system
:
fnm use system
Puede crear un .node-version
archivo en la raíz de su proyecto y simplemente escribir la versión de Nodo deseada de ese proyecto en ese archivo como se muestra a continuación para adjuntarle una versión de Nodo:
echo 'v18.3.0' > .node-version
fnm
respeta este archivo. Entonces, si está en ese directorio, puede usar fnm install
o fnm use
para instalar o usar esa versión.
fnm
También respeta el .nvmrc
archivo (es similar al .node-version
archivo pero vino de nvm
tierra). Entonces, si usó nvm
antes, tendrá una transición suave a fnm
.
fnm
puede usar estos archivos de puntos para detectar la versión del nodo e incluso comenzar a usarlos automáticamente al usar cd
, lo cual es realmente útil en la mayoría de los casos, por lo que ya los he habilitado en la configuración de variables de entorno agregando las siguientes banderas al fnm env
comando:
--use-on-cd
: Esta bandera indica fnm
que cuando ingresa cd
al directorio raíz de un proyecto, debe usar automáticamente el Nodo de la versión especificada en .node-version
(o .nvmrc
). Genial, ¿no?--version-file-strategy=recursive
: Esta bandera y su recursive
valor básicamente le dicen fnm
que use la versión de Nodo especificada en .node-version
(o .nvmrc
) incluso cuando esté en un directorio anidado y use el subcomando use
o sin una versión. install
También le indica fnm
que use la versión de nodo con alias default
cuando esté fuera de dicho directorio de proyecto y use el use
subcomando sin una versión. El uso de este indicador junto con --use-on-cd
le permite tener la magia de usar o instalar automáticamente el Nodo de la versión relevante (como se describe aquí) cuando entra y sale profundamente de dichos directorios de proyectos.Si estas funciones interfieren en su flujo de trabajo, puede eliminar estas banderas en cualquier momento en la configuración de la variable de entorno para desactivarlas.
Desinstalar una versión de node es muy similar a instalarla. Solo necesita usar el subcomando en uninstall
lugar de install
. Eso es todo.
fnm
Eliminar fnm
es tan simple como eliminar el .fnm
directorio de su directorio home
y eliminar su configuración específica que agregó en su archivo de configuración de shell. Recuerde eliminar también el script de finalización.
A continuación se muestra un resumen de todos los comandos que hemos discutido en este artículo:
# Listing all versions
fnm ls-remote
# Listing all installed ones
fnm ls
# Installing
fnm install <version>
# Uninstalling
fnm uninstall <version>
# Installing the latest LTS version
fnm install --lts
# Setting an alias
fnm alias <version> <name>
# Removing an alias
fnm unalias <name>
# Using a version
fnm use <version>
# Displaying the current version
fnm current
Además, si necesita ayuda rápida, fnm
tiene ayuda integrada que puede obtener en cualquier momento directamente desde su terminal, como se muestra a continuación:
fnm
comando:fnm --help
fnm <sub-command> --help
Si te gusta fnm
no lo olvides dale una estrella en GitHub . Creo que se merece más estrellas de las que tiene ahora.
¡Gracias por leer! Si quieres, puedes visitar mi sitio web y seguirme en Twitter y LinkedIn .
Codificación feliz 😄
Esta historia se publicó originalmente en https://www.freecodecamp.org/news/fnm-fast-node-manager/
#nodejs #fnm