que node framework diferencias javascript npm

javascript - node - ¿Diferencia entre npx y npm?



yarn (7)

Presentamos npx: an npm package runner

NPM - Administra paquetes pero no facilita la ejecución de ninguno.
NPX - Una herramienta para ejecutar paquetes de nodos.

NPX viene incluido con la versión 5.2+ NPM

NPM por sí solo no ejecuta ningún paquete. de hecho, no ejecuta ningún paquete. Si desea ejecutar un paquete utilizando NPM, debe especificar ese paquete en su archivo package.json .

Cuando los ejecutables se instalan a través de paquetes NPM, NPM los vincula con ellos:

  1. Las instalaciones locales tienen "enlaces" creados en el directorio ./node_modules/.bin/ .
  2. las instalaciones globales tienen "enlaces" creados desde el directorio bin/ global (por ejemplo, /usr/local/bin ) en Linux o en %AppData%/npm en Windows.

Documentación que debes leer

NPM:

Uno podría instalar un paquete localmente en un proyecto determinado:

npm install some-package

Ahora digamos que desea que NodeJS ejecute ese paquete desde la línea de comandos:

$ some-package

Lo anterior fallará . Solo los paquetes instalados globalmente pueden ejecutarse escribiendo solo su nombre.

Para solucionar este problema y ejecutarlo, debe escribir la ruta local:

$ ./node_modules/.bin/some-package

Técnicamente puede ejecutar un paquete instalado localmente editando su archivo packages.json y agregando ese paquete en la sección de scripts :

{ "name": "whatever", "version": "1.0.0", "scripts": { "some-package": "some-package" } }

Luego ejecute el script usando npm run-script (o npm run ):

npm run some-package

NPX:

npx verificará si <command> existe en $PATH , o en los archivos binarios del proyecto local, y lo ejecutará. Por lo tanto, para el ejemplo anterior, si desea ejecutar el paquete instalado localmente en some-package todo lo que necesita hacer es escribir:

npx some-package

Otra ventaja importante de npx es la capacidad de ejecutar un paquete que no se instaló previamente:

$ npx create-react-app my-app

El ejemplo anterior generará una aplicación reactiva dentro de la ruta en la que se ejecutó el comando, y garantiza que siempre use la última versión de un generador o herramienta de compilación sin tener que actualizar cada vez que esté a punto de usarla.

Preguntas relacionadas:

  1. ¿Cómo usar el paquete instalado localmente en node_modules?
  2. NPM: ¿cómo se origina la carpeta ./node_modules/.bin?
  3. ¿Cómo ejecutas un archivo js usando npm scripts?

Acabo de empezar a aprender React y Facebook ayuda a simplificar la configuración inicial al proporcionar el siguiente proyecto ya hecho.
Enlace a la cuenta de Facebook en Github: https://github.com/facebook/create-react-app
Si tengo que instalar el proyecto de esqueleto, tengo que escribir npx create-react-app my-app en la línea de comandos.
Me preguntaba por qué la cuenta de Facebook en Github tiene npx create-react-app my-app lugar de npm create-react-app my-app ?


Aquí hay un ejemplo de NPX en acción: npx cowsay hello

Si escribes eso en tu terminal bash verás el resultado. El beneficio de esto es que npx ha instalado temporalmente cowsay. No hay contaminación de paquetes ya que cowsay no se instala de forma permanente. Esto es ideal para paquetes únicos en los que desea evitar la contaminación de paquetes.

Como se mencionó en otras respuestas, npx también es muy útil en los casos en que (con npm) el paquete debe instalarse y configurarse antes de ejecutarse. Por ejemplo, en lugar de usar npm para instalar y luego configurar el archivo json.package y luego llamar al comando de ejecución configurado, simplemente use npx en su lugar. Un ejemplo real: npx create-react-app my-app


NPM es un administrador de paquetes, puede instalar los paquetes de node.js usando NPM

NPX es una herramienta para ejecutar paquetes node.js.

No importa si instaló ese paquete globalmente o localmente. NPX lo instalará temporalmente y lo ejecutará. NPM también puede ejecutar paquetes si configura un archivo package.json y lo incluye en la sección de script.

Entonces, recuerde esto, si desea comprobar / ejecutar un paquete de nodo rápidamente sin instalar local o globalmente, use NPX.

np M - Gerente

np X - Ejecutar - fácil de recordar


NPX:

Desde https://www.futurehosting.com/blog/npx-makes-life-easier-for-node-developers-plus-node-vulnerability-news/ :

Los desarrolladores web pueden tener docenas de proyectos en sus máquinas de desarrollo, y cada proyecto tiene su propio conjunto particular de dependencias instaladas de npm. Hace unos años, el consejo habitual para tratar con aplicaciones de CLI como Grunt o Gulp era instalarlas localmente en cada proyecto y también a nivel mundial para que pudieran ejecutarse fácilmente desde la línea de comandos.

Pero la instalación global causó tantos problemas como resolvió. Los proyectos pueden depender de diferentes versiones de las herramientas de la línea de comandos, y la contaminación del sistema operativo con muchas herramientas CLI específicas del desarrollo tampoco es excelente. Hoy en día, la mayoría de los desarrolladores prefieren instalar herramientas localmente y dejarlo así.

Las versiones locales de herramientas permiten a los desarrolladores extraer proyectos de GitHub sin preocuparse por las incompatibilidades con las versiones de herramientas instaladas globalmente. NPM solo puede instalar versiones locales y listo. Pero las instalaciones específicas del proyecto no están exentas de problemas: ¿cómo ejecutar la versión correcta de la herramienta sin especificar su ubicación exacta en el proyecto o jugar con alias?

Ese es el problema que npx resuelve. Una nueva herramienta incluida en NPM 5.2, npx es una pequeña utilidad que es lo suficientemente inteligente como para ejecutar la aplicación correcta cuando se llama desde un proyecto.

Si desea ejecutar la versión local de mocha para el proyecto, por ejemplo, puede ejecutar npx mocha dentro del proyecto y hará lo que usted espera.

Un beneficio adicional útil de npx es que instalará automáticamente los paquetes npm que aún no están instalados. Entonces, como señala el creador de la herramienta Kat Marchán, puede ejecutar npx benny-hill sin tener que lidiar con Benny Hill contaminando el medio ambiente global.

Si desea probar npx por un giro, actualice a la versión más reciente de npm.


Si usa npm 5.1 o anterior , no puede usar npx. En su lugar, instale create-react-app globalmente:

npm install -g create-react-app

Ahora puedes correr:

crear-reaccionar-aplicación mi aplicación


npx ejecuta un comando de un paquete sin instalarlo explícitamente.

Casos de uso:

  • No desea instalar paquetes ni globalmente ni localmente.
  • No tienes permiso para instalarlo globalmente.
  • Sólo quiero probar algunos comandos.

Sintaxis:

npx [options] [-p|--package <package>] <command> [command-arg]...

El paquete es opcional:

npx -p uglify-js uglifyjs --output app.min.js app.js common.js +----------------+ +--------------------------------------------+ package (optional) command, followed by arguments

Por ejemplo:

Start a HTTP Server : npx http-server Lint code : npx eslint ./src # Run uglifyjs command in the package uglify-js Minify JS : npx -p uglify-js uglifyjs -o app.min.js app.js common.js Minify CSS : npx clean-css-cli -o style.min.css css/bootstrap.css style.css Minify HTML : npx html-minifier index-2.html -o index.html --remove-comments --collapse-whitespace Scan for open ports : npx evilscan 192.168.1.10 --port=10-9999 Cast video to Chromecast : npx castnow http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4

Más sobre el command :


npx es un corredor de paquetes npm (x probablemente significa eXecute). El uso típico es descargar y ejecutar un paquete temporalmente o para pruebas.

create-react-app es un paquete npm que se espera que se ejecute solo una vez en el ciclo de vida de un proyecto. Por lo tanto, es preferible usar npx para instalarlo y ejecutarlo en un solo paso.

Como se menciona en la página de manual https://www.npmjs.com/package/npx , npx puede ejecutar comandos en el PATH o desde node_modules / .bin de forma predeterminada.

Nota: con algunas excavaciones, podemos encontrar que create-react-app apunta a un archivo Javascript (posiblemente a /usr/lib/node_modules/create-react-app/index.js en sistemas Linux) que se ejecuta dentro del entorno de nodo . Esto es simplemente una herramienta global que hace algunas comprobaciones. La configuración real se realiza mediante react-scripts, cuya última versión está instalada en el proyecto. Consulte https://github.com/facebook/create-react-app para obtener más información.