Saltar al contenido

¿Cuál es el propósito de la carpeta .bin en node_modules?

Después de mirar en varios repositorios y foros al final encontramos la respuesta que te compartiremos ahora.

Solución:

Esa es una carpeta donde se encuentran los archivos binarios (ejecutables) de los módulos de su nodo.

El sitio de NPM declara:

Ejecutables Cuando está en modo global, los ejecutables están vinculados a prefix/bin en Unix, o directamente en prefix en Windows.

Cuando está en modo local, los ejecutables se vinculan a ./node_modules/.bin para que puedan estar disponibles para los scripts que se ejecutan a través de npm. (Por ejemplo, para que un corredor de prueba esté en la ruta cuando ejecute la prueba npm).

El directorio node_modules/.bin es donde se almacenan los binarios de los módulos usados ​​por su proyecto, normalmente usando enlaces simbólicos a los respectivos binarios en el directorio del módulo correspondiente. Por ejemplo, así es como veo el binario. standard del estándar del paquete npm (guía de estilo, linter y formateador de JavaScript)

$ ls node_modules/.bin/standard -l
lrwxrwxrwx 1 jfolpf jfolpf 22 jul 17 08:29 standard -> ../standard/bin/cmd.js

cuando corro node_modules/.bin/standard de hecho estoy corriendo node_modules/standard/bin/cmd.js del paquete npm standard. Este enlace simbólico se creó al instalar el paquete, es decir, al npm install standard

Estos binarios también le permiten usar módulos directamente desde scripts npm. Por ejemplo, es posible que no haya instalado standard globalmente con npm install standard -glo que significa que no puede ejecutar standard directamente desde su terminal en el directorio principal de su módulo.

Pero puede escribir un script de prueba de npm start o npm agregando lo siguiente, respectivamente, a su package.json:

"scripts": 
  "start": "standard src/*.js",
  "test": "standard src/*.js && node myTest.js"

y esto es completamente correcto dado que tiene estándar como dependencia del proyecto. Aunque el módulo no es global y el sistema operativo no lo puede usar directamente, npm puede buscar la carpeta bin para el standard nombre del módulo y activa el binario compilado. De hecho, npm ejecuta un script de este tipo:

"start": "node_modules/.bin/standard src/*.js",

Finalizando este artículo puedes encontrar las críticas de otros sys admins, tú además tienes la libertad de mostrar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *