Estoy tratando de obtener las dependencies actuales y las versiones de devDependencies que están configuradas en el archivo package.json para que cuando MakeFile se ejecute para un nuevo usuario, instale las versiones enumeradas allí y no solo la última versión. Entonces, para el ejemplo a continuación, en lugar de simplemente decir npm install @applitools/eyes-testcafe , tomaríamos la versión 1.16.1 del paquete.json y la interpolaríamos allí en MakeFile como ${eyes_version} o algo así.
¿Alguna idea de como hacerlo? ¡Gracias!
"devDependencies": { "@applitools/eyes-testcafe": "^1.16.1", "testcafe": "^1.18.6", "testcafe-reporter-xunit": "*" } install-testcafe: npm ffmpeg applitools testcafe # Installs all dependencies necessary for testcafe and node to run. npm: npm install # Installs the ffmpeg video recorder. This is recursive as sometimes it doesn't install automatically. ffmpeg: npm install @ffmpeg-installer/ffmpeg # Installs the applitools dependency. This is recursive as sometimes it doesn't install automatically. applitools: npm install @applitools/eyes-testcafe # Installs TestCafe globally. This is recursive as sometimes it doesn't install automatically. testcafe: sudo npm install -g testcafeComo estás usando jq ,
jq '.devDependencies["@applitools/eyes-testcafe"]' package.jsonCuestiono la validez/utilidad de usar un envoltorio Make alrededor de NPM. Está envolviendo una herramienta de compilación en una herramienta de compilación. ¿Por qué? Supongo que para que sea más familiar para los desarrolladores que provienen de un ecosistema C/Make. Pero mezclar Make y NPM de esta manera confunde a los desarrolladores de Node/NPM, y los scripts de NPM pueden ejecutar comandos CLI como lo hace Make.
¿Es npm i realmente más complicado que make npm ? Parece que esta información está mejor en un LÉAME, y los desarrolladores de Make deben saber cómo usar NPM (por ejemplo, puede ejecutar comandos CLI desde scripts NPM). Agregar scripts Make no agrega ningún valor aquí, pero YMMV, tal vez esto sea particularmente útil dentro de su organización.
Tampoco use sudo cuando ejecute npm .