Cómo forzar el uso de hilo o NPM

En esta breve publicación, le mostraré cómo evitar el uso de npm o hilo, según sus necesidades. ¡Empecemos!

Editar .npmrc

Es posible que no tenga este archivo en su código base. Si este es el caso, cree este archivo en la carpeta raíz de su aplicación.

Nos permite especificar las configuraciones del administrador de paquetes y es utilizado tanto por npm como por yarn .

Su .npmrcarchivo debe tener la engine-strictpropiedad marcada como true.

//.npmrc file engine-strict = true

Esta opción le dice al administrador de paquetes que use la versión de los motores que hemos especificado en el package.jsonarchivo.

Editar package.json

Dentro de su package.jsonarchivo, debe agregar la enginessección si no la tiene actualmente.

 //package.json { ... "engines": { "npm": "please-use-yarn", "yarn": ">= 1.19.1" }, ... }

En el código anterior, el package.jsonarchivo usa una versión de yarn1.19.1 o superior.

Pero para npmnosotros especificamos una versión que no existe.

De esta manera nos aseguramos de que cuando alguien intente usar en npmlugar de yarn, reciba un error que muestre ' please-use-yarn'.

Ejecutando npm install

Una vez que haya realizado los cambios anteriores, intente ejecutar npm install.

Recibirá un error que le impedirá usar npm.

 npm ERR! code ENOTSUP npm ERR! notsup Unsupported engine for [email protected]: wanted: {"npm":"please-use-yarn","yarn":">= 1.19.1"} (current: {"node":"12.16.3","npm":"6.14.4"}) npm ERR! notsup Not compatible with your version of node/npm: [email protected] npm ERR! notsup Not compatible with your version of node/npm: [email protected] npm ERR! notsup Required: {"npm":"please-use-yarn","yarn":">= 1.19.1"} npm ERR! notsup Actual: {"npm":"6.14.4","node":"12.16.3"} npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\YourUser\AppData\Roaming\npm-cache\_logs\2020-05-21T10_21_04_676Z-debug.log 

Esto, por supuesto, se puede hacer al revés si desea evitar el uso de yarn.

Conclusión

Es bastante sencillo y fácil asegurarse de que solo se debe usar un administrador de paquetes dentro de su proyecto.

Esto reducirá la posibilidad de errores causados ​​por los desarrolladores que utilizan diferentes administradores de paquetes y es una buena práctica estandarizar las reglas de codificación y la administración del proyecto.

Puede comunicarse y preguntarme cualquier cosa en Twitter, Facebook y mi sitio web.