node.js - nodejs - npm install
¿Qué usa/respeta el archivo.node-version? (5)
He buscado Stack Overflow y GitHub (para nodo y nvm) por una respuesta, pero fue en vano.
En algunos repositorios ( como el editor de texto Atom de GitHub , por ejemplo), he encontrado un .node-version
. Parece ser análogo al archivo estándar de la .ruby-version
que funciona con cualquier administrador de versiones de Ruby para configurar la versión actual de Ruby correctamente para el proyecto.
Pero por lo que puedo ver en su documentación , nvm (Node Version Manager) solo respeta un archivo .nvmrc
; no menciona nada sobre un archivo de .node-version
más general. Y no hay mención de .node-version
en la documentación del nodo (y no esperaría que existiera, ya que no se entrega con un administrador de .node-version
de .node-version
). No tengo conocimiento de ningún otro administrador de versiones de nodo en uso intensivo.
Entonces mi pregunta es, ¿qué es .node-version
? ¿Qué herramientas realmente lo usan? ¿Es solo un alias para .nvmrc
, o me estoy perdiendo algo aquí?
(revelación: mantengo http://nvm.sh )
Los gestores de versión más utilizados para el nodo son, sin duda, http://nvm.sh , https://www.npmjs.com/package/nave , y https://www.npmjs.com/package/n .
nvm
es para modificar sesiones de shell individuales para usar la versión que desea. nave
es para lanzar subshells con la versión que desea cargar. n
es para cambiar una única versión de nodo del sistema.
nvm
usa un archivo .nvmrc
, que al igual que .ruby-version
, contiene la cadena de versión X que normalmente se nvm use X
con nvm use X
o nvm install X
nvm use
o nvm install
por sí mismo ubicará el archivo .nvmrc
, y simplemente obtendrá nvm
al abrir un nuevo shell.
Parece que nave
admite un archivo .naverc
, pero no estoy muy familiarizado con su uso.
Parece que n
no admite ninguna configuración de este tipo, pero como se aplica a todo el sistema, no tiene mucho sentido hacerlo.
avn
compatible con .node-version
e intenta proporcionar un cambio automático de versión al engancharlo en cd
, después de que nvm
decidió que era un comportamiento demasiado invasivo para incluirlo.
Hay al menos dos administradores de versión para node.js, respetando el archivo .node-version
:
Puede haber otros administradores de versiones, pero no estoy al tanto de ellos.
No sé qué administrador de versión particular usa Atom. nodenv
tiene más estrellas en github, pero avn
parece más maduro y mejor mantenido para mí, por no mencionar su compatibilidad con n y nvm .
Utilizando el nvm use
o la nvm install
sin versión, nvm rastreará el árbol de archivos en busca de una versión dentro de un archivo .nvmrc
, que generalmente .nvmrc
al estado stable
en ~/.nvmrc
.
Aquí hay un parche de git de 6 líneas que buscará un archivo de .node-version
local si no se encuentra el archivo .nvmrc
:
~/.nvm/nvm.sh, ≈line 280
1 file changed, 8 insertions(+), 2 deletions(-)
# Obtain nvm version from rc file
nvm_rc_version() {
local NVMRC_PATH
NVMRC_PATH="$(nvm_find_nvmrc)"
if [ ! -e "${NVMRC_PATH}" ]; then
- nvm_err "No .nvmrc file found"
- return 1
+ local LOCAL_NODE_VERSION_DOTFILE_PATH
+ LOCAL_NODE_VERSION_DOTFILE_PATH="${PWD}/.node-version"
+ if [ -e "${LOCAL_NODE_VERSION_DOTFILE_PATH}" ]; then
+ NVMRC_PATH="${LOCAL_NODE_VERSION_DOTFILE_PATH}"
+ else
+ nvm_err "No .nvmrc file found"
+ return 1
+ fi
Sin conexión de CD, sin paquetes adicionales para instalar, solo (lo que encuentro) es un valor predeterminado razonable.
fnm también admite .node-version https://github.com/fisherman/fnm/
for f in .fnmrc .nvmrc .node-version
Direnv admite Direnv .node-version
y .nvmrc
. Direnv es todo lo que uso para cargar versiones específicas del proyecto de Node.js.
https://github.com/direnv/direnv/wiki/node#load-nodejs-version-from-a-node-version-or-nvmrc-file