¿Cómo encontrar la versión de un paquete node.js/npm instalado?
Esto imprime la versión de npm en sí:
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 obtengo la versión instalada ?
Para ver todos los paquetes instalados local o globalmente, use estos comandos:
npm list
para paquetes locales o npm list -g
para paquetes instalados globalmente.npm list --depth=0
npm list | sls <package name>
node -v
package.json
Puede acceder al package.json
o bower.json
del paquete con:
notepad ./node_modules/:packageName/package.json
Esto abrirá el package.json
en el notepad
de notas que tiene el version number
de :packageName
que incluiste en el command
.
notepad ./node_modules/vue-template-compiler/package.json
Buena suerte.
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:
NPM version is: 4.2.0
0.8.08
0.8.09
0.8.10
Nota: -d en el comando de corte significa delimitar por, seguido de @, luego f significa campo, el 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 paquetes locales en su lugar):
$ npm ll -pg --depth=0 grunt | grep -o "@.*:" | sed 's/.$//; s/^.//' 0.4.5
npm ll
genera una cadena analizable formateada como: /usr/lib/node_modules/npm:npm@2.14.8:
;grep
extrae el valor entre @
y :
, inclusive;sed
elimina los caracteres circundantes.Puede usar npm view [módulo] versión , npm info [módulo] versión , npm show [módulo] versión o npm v [módulo] versión para verificar la versión en un módulo npm instalado.
Supongamos que la versión de mi módulo grunt 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
Prueba con:
npm list --depth 1 --global packagename
acabo de usar
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>
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 es visto por npm version
.
Desde la raíz del paquete hacer:
node -p "require('./package.json').version"
EDITAR : (por lo que debe ingresar al directorio de inicio del módulo si aún no está allí. Si ha instalado el módulo con cd
npm install
, entonces estará en node_modules/<module_name>
)
EDITAR 2 : actualizado según la respuesta de @ jeff-dickey
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
dará como resultado:
projectName@projectVersion /path/to/project/folder └── grunt@0.4.1
Alternativamente, puede simplemente ejecutar npm list
sin pasar un nombre de paquete como argumento para ver las versiones de todos sus paquetes:
├─┬ cli-color@0.1.6 │ └── es5-ext@0.7.1 ├── coffee-script@1.3.3 ├── less@1.3.0 ├─┬ sentry@0.1.2 │ ├── file@0.2.1 │ └── underscore@1.3.3 └── uglify-js@1.2.6
También puede agregar el argumento --depth=0
para enumerar los paquetes instalados sin sus dependencias.
Otra forma rápida de saber qué paquetes están instalados localmente y sin sus dependencias es usar:
npm list --depth=0
Lo que te da algo como
├── bower@0.8.6 ├── grunt@0.4.1 ├── grunt-bower-requirejs@0.4.3 ├── grunt-contrib-clean@0.4.1 ├── grunt-contrib-coffee@0.7.0 ├── grunt-contrib-copy@0.4.1 ├── grunt-contrib-imagemin@0.1.4 ├── grunt-contrib-jshint@0.1.1 ├── grunt-contrib-livereload@0.1.2 ├── grunt-contrib-requirejs@0.4.1 ├── grunt-regarde@0.1.1 └── grunt-svgmin@0.1.0
Obviamente, lo mismo se puede hacer globalmente con npm list -g --depth=0
.
Este método es más claro si ha instalado muchos paquetes.
Para averiguar qué paquetes deben actualizarse, puede usar npm outdated -g --depth=0
.
Si acepta instalar jq , puede usar la salida JSON de npm list
.
npm -j ls <package-name> | jq -r .version
o, si quieres ser detallado
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
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 versiones de todos los módulos y dependencias.
Y, por último, para obtener la versión del nodo: node -v
npm info YOUR_PACKAGE version
p.ej
npm info grunt version 0.4.5
He visto algunas respuestas muy creativas, pero puede hacer esto (para paquetes globales, agregue el interruptor --global):
npm ls package
Ejemplo:
npm ls babel-cli `-- babel-cli@6.26.0
La documentación de npm dice que npm -ls
Este comando imprimirá en la salida estándar todas las versiones de los paquetes que están instalados, así como sus dependencias, en una estructura de árbol.
Si desea buscar un módulo en particular instalado globalmente, en los sistemas * nix use:
npm list -g --depth=0 | grep <module_name>
Puede ver package.json para ver la versión de los paquetes instalados
Para obtener la lista en la línea de comando
npm ls
Le dará todos los paquetes instalados en un proyecto con sus respectivas versiones.
Para una versión de paquete particular
npm ls <package-name>
por ejemplo
npm ls next
devolverá la versión
-- next@10.1.3
También puede ver package.json
manualmente en un editor de texto, ver qué paquetes son dependencias. Use esto si npm list
no funciona como una alternativa manual.
Hay una manera simple de hacer esto. primero, vaya a la ubicación deseada (donde se encuentra el package.json
). y simplemente abrir el archivo package.json
como editor de texto.
por este método, puede encontrar todas las versiones del módulo en un solo lugar
package.json
se ve así
{ "name": "raj", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "bcrypt": "^5.0.1", "connect-flash": "^0.1.1", "dotenv": "^10.0.0", "ejs": "^3.1.6", "express": "^4.17.1", "express-session": "^1.17.2", "mysql2": "^2.2.5", "passport": "^0.4.1", "passport-local": "^1.0.0", "sequelize": "^6.6.2", "socket.io": "^4.1.2" } }
para que pueda leer todas las dependencias instaladas (módulos) en su PC
es decir "socket.io": "^4.1.2"
por lo que 'socket.io'
tiene la versión 4.1.2
npm list package-name proporciona la versión instalada actualmente
npm view <package-name> version
npm view redux version
Tengo la versión 7.2.0 de redux.
npm list --depth 0
es el comando que muestra todas las bibliotecas con versión pero puede usar npm-check
npm-check es una buena biblioteca para administrar todas esas cosas relacionadas con el evento del sistema de versiones, mostrará las versiones de las bibliotecas, la actualización de la nueva versión, la versión no utilizada y muchas más.
para instalarlo solo ejecuta
npm install -g npm-check
y simplemente corre
npm-check
verifique la captura de pantalla que muestra todo sobre la versión del paquete, la actualización de la nueva versión y la versión no utilizada.
También funciona globalmente. darle una oportunidad. Espero que esto ayude a alguien.
Para enumerar los paquetes locales con el uso del número de versión:
npm ls --depth=0
Para enumerar paquetes globales con el uso del número de versión:
npm ls -g --depth=0
Podemos usar npm view any-promise (el nombre de su módulo) -v
Para paquetes locales
npm list --depth=0
Para paquetes globales
npm list -g --depth=0
He creado una herramienta que hace exactamente eso: qnm
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 tenemos lodash
instalado en la raíz de node_modules
y otras dos copias en 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.
La combinación de algunas de las respuestas anteriores produce una búsqueda súper simple y súper rápida.
Ejecutar desde la raíz del proyecto. No hay necesidad de cd
en ninguna carpeta, solo 1 línea:
node -p "require('SOMEPACKAGE/package.json').version"
También puede verificar la versión con este comando:
npm info <package name> version
Puede probar 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.
Esta es una pregunta simple, y debería tener una respuesta más simple que la que veo arriba.
Para ver los paquetes npm instalados con su versión, el comando es npm ls --depth=0
, que, de forma predeterminada, muestra lo que está instalado localmente. Para ver los paquetes instalados globalmente, agregue el argumento -global
: npm ls --depth=0 -global
.
--depth=0
devuelve una lista de paquetes instalados sin sus dependencias, que es lo que desea hacer la mayor parte del tiempo.
ls
es el nombre del comando y list
es un alias para ls
.
Todas las respuestas son sobre npm
Así es como se hace usando yarn
.
Para poder ayudar si alguien necesita.
Puede detectar la versión exacta del módulo en ejecución con los siguientes comandos:
yarn list
=> enumera todas las dependencias
yarn list --depth=0
=> Para restringir la profundidad de las dependencias , use la --depth
.
Para obtener SOLO el número de la versión instalada, intente:
npm lista -g --profundidad=0 nombre del paquete | nombre del paquete grep | cortar -d'@' -f2
por ejemplo, número de versión instalada de PM2:
lista npm -g --profundidad=0 pm2 | grep pm2 | cortar -d'@' -f2
Simplemente revise su archivo package.json.
"dependencies": { "ajv": "^8.9.0", "ajv-keywords": "^5.1.0", "fastify": "^3.27.0"
estoy usando
lista npm --profundidad=0 | grep module_name@
me trae resultados como este
├── nombre_módulo@2.1033.0
npx ejecuta comandos en un entorno run-script-like
npm, con todas las variables de entorno habituales disponibles. Por lo tanto, también puedes usar algo como
npx -c 'node -p "process.env.npm_package_version"'