node.js - last - npm install node
Encuentra la versión de un paquete npm instalado (20)
¿Cómo encontrar la versión de un paquete node.js / npm instalado?
Esto imprime la versión del propio npm:
npm -v <package-name>
Esto imprime un error críptico:
npm version <package-name>
Esto imprime la versión del paquete en el registro (es decir, la última versión disponible):
npm view <package-name> version
¿Cómo consigo la versión instalada ?
Accede al package.json
Puede acceder a package.json
o bower.json
del paquete con:
notepad ./node_modules/:packageName/package.json
Esto abrirá package.json
en notepad
que tiene el version number
de version number
de :packageName
que incluyó en el command
.
Por ejemplo :
notepad ./node_modules/vue-template-compiler/package.json
Buena suerte.
Acabo de usar la npm list | grep <package name>
npm list | grep <package name>
y funcionó muy bien
En Windows ejecutar:
npm list | find <package name>
En PowerShell ejecutar:
npm list | sls <package name>
Agregué esto a mi .bashrc
function npmv {
case $# in # number of arguments passed
0) v="$(npm -v)" ; #store output from npm -v in variable
echo "NPM version is: $v"; #can''t use single quotes
#${v} would also work
;;
1) s="$(npm list --depth=0 $1 | grep $1 | cut -d @ -f 2)";
echo "$s";
;;
2) case "$2" in # second argument
g) #global|#Syntax to compare bash string to literal
s="$(npm list --depth=0 -g $1 | grep $1 | cut -d @ -f 2)";
echo "$s";
;;
l) #latest
npm view $1 version; #npm info $1 version does same thing
;;
*) echo ''Invalid arguments'';
;;
esac;
;;
*) echo ''Invalid arguments'';
;;
esac;
}
export -f npmv
Ahora todo lo que tengo que hacer es escribir:
- npmv para la versión de npm, por ejemplo: la
NPM version is: 4.2.0
- npmv <nombre_del_paquete> para la versión local, por ejemplo:
0.8.08
- npmv <nombre_paquete> g para versión global, por ejemplo:
0.8.09
- npmv <nombre_del_paquete> l para la última versión, por ejemplo:
0.8.10
Nota: -d en el comando cortar significa delimitar por, seguido de @, luego f significa campo 2 significa segundo campo ya que habrá uno a cada lado del símbolo @.
Aquí hay un Unix portátil (que usa grep
y sed
) de una sola línea que devuelve la cadena de versión de un paquete npm instalado globalmente (elimine la g
de -pg
para consultar los paquetes locales en su lugar):
$ npm ll -pg --depth=0 grunt | grep -o "@.*:" | sed ''s/.$//; s/^.//''
0.4.5
- el
npm ll
genera una cadena analizable formateada como: /usr/lib/node_modules/npm:[email protected]:; - el comando
grep
extrae el valor entre@
y:
inclusive; - El comando
sed
elimina los caracteres circundantes.
Desde la raíz del paquete haz:
node -p "require(''./package.json'').version"
EDITAR : (por lo tanto, debe ingresar en el directorio de inicio del módulo si aún no está allí. Si ha instalado el módulo con la npm install
, estará en node_modules/<module_name>
)
EDIT 2 : actualizado según la respuesta de @ jeff-dickey
He construido una herramienta que hace exactamente eso - qnm
qnm: una utilidad CLI simple para consultar el directorio node_modules
.
Instálalo usando:
npm i --global qnm
y correr:
qnm [module]
por ejemplo:
> qnm lodash
lodash
├── 4.17.5
├─┬ cli-table2
│ └── 3.10.1
└─┬ karma
└── 3.10.1
Lo que significa que hemos instalado lodash
en la raíz de los node_modules
y otras dos copias en los node_modules
de cli-table2
y karma
.
Es realmente rápido y tiene algunas características interesantes, como la finalización de pestañas y la búsqueda de coincidencias.
Intenta con:
npm list --depth 1 --global packagename
La combinación de algunas de las respuestas anteriores y produce una búsqueda súper simple y súper rápida.
Ejecutar desde la raíz del proyecto. No necesita cd
en ninguna carpeta, solo 1 línea:
node -p "require(''SOMEPACKAGE/package.json'').version"
Otra forma rápida de averiguar qué paquetes se instalan localmente y sin sus dependencias es usar:
npm list --depth=0
Lo que te da algo como
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
Obviamente, lo mismo se puede hacer globalmente con npm list -g --depth=0
.
Este método es más claro en caso de que haya instalado muchos paquetes.
Para saber qué paquetes necesitan actualizarse, puede usar npm outdated -g --depth=0
.
Para paquetes locales
npm list --depth=0
Para paquetes globales
npm list -g --depth=0
Para ver todos los paquetes instalados local o globalmente, use estos comandos:
-
npm list
para paquetes locales onpm list -g
para paquetes instalados globalmente. -
npm list --depth=0
-
npm list | sls <package name>
-
node -v
Podemos usar npm view any-promise (nombre de su módulo) -v
Puede intentar esto: npm show {package} version
muestra la última versión del paquete. Y si su paquete está desactualizado, npm outdated
lo mostrará con la información de la versión.
Puede usar la versión npm view [módulo] , la versión npm info [módulo] , la versión npm show [módulo] o la versión npm v [módulo] para verificar la versión en un módulo npm instalado.
Supongamos que mi versión de módulo de gruñido es la 0.4.5:
npm view grunt version => 0.4.5
npm info grunt version => 0.4.5
npm show grunt version => 0.4.5
npm v grunt version => 0.4.5
Si acepta instalar jq , puede usar la salida JSON de la npm list
.
npm -j ls <package-name> | jq -r .version
o, si quieres ser verboso
npm --json list <package-name> | jq --raw-output ''.version''
Por ejemplo:
$ npm -j ls ghost | jq -r .version
0.4.2
Además, el formato JSON es ligeramente diferente para los paquetes globales, por lo que deberá cambiar la consulta.
Por ejemplo:
$ npm -j -g ls | jq -r .dependencies.ghost.version
0.4.2
Si eres lo suficientemente valiente (y tienes un node
instalado), siempre puedes hacer algo como:
echo "console.log(require(''./package.json'').version);" | node
Esto imprimirá la versión del paquete actual. También puedes modificarlo para volverte loco, así:
echo "eval(''var result=''+require(''child_process'').execSync(''npm version'',{encoding:''utf8''})); console.log(result.WHATEVER_PACKAGE_NAME);" | node
Eso imprimirá la versión del paquete WHATEVER_PACKAGE_NAME
, que se ve en la npm version
.
También puede comprobar la versión con este comando.
npm info <package name > version
npm list
para paquetes locales o npm list -g
para paquetes instalados globalmente.
Puede encontrar la versión de un paquete específico pasando su nombre como argumento. Por ejemplo, npm list grunt
resultará en:
projectName@projectVersion /path/to/project/folder
└── [email protected]
Alternativamente, puede ejecutar la npm list
sin pasar un nombre de paquete como argumento para ver las versiones de todos sus paquetes:
├─┬ [email protected]
│ └── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ └── [email protected]
└── [email protected]
npm view <package> version
: devuelve la última versión disponible en el paquete.
npm list --depth=0
- devuelve versiones de todos los módulos instalados sin dependencias.
npm list
: devuelve las versiones de todos los módulos y dependencias.
Y por último para obtener la versión de node -v
: node -v
npm info YOUR_PACKAGE version
p.ej
npm info grunt version
0.4.5