¿Cómo puedo deshabilitar la verificación de integridad para una dependencia local en package-lock.json?
En mi repositorio, tengo una biblioteca base y dos aplicaciones angulares que usan mi biblioteca base como dependencia.
Desafortunadamente, la integridad sha512 de la biblioteca base es diferente con cada compilación y npm falla al instalar las dependencias.
Esto es lo que sale:
npm ERR! code EINTEGRITY npm ERR! Verification failed while extracting @me/base-library@file:../lib/me-base-library-1.0.0.tgz: npm ERR! Verification failed while extracting @me/base-library@file:../lib/me-base-library-1.0.0.tgz: npm ERR! Integrity check failed: npm ERR! Wanted: sha512-(...) npm ERR! Found: sha512-(...)Extracto de "paquete-lock.json":
"@me/base-library": { "version": "file:../lib/me-base-library-1.0.0.tgz", "integrity": "sha512-(...)" // <- different with every build }¿Hay alguna forma de deshabilitar las comprobaciones de integridad para las dependencias locales?
No estoy seguro de que exista tal posibilidad; básicamente, sería un interruptor para activar los problemas de seguridad.
Para solucionar este problema sin introducir problemas de seguridad, puede volver a instalar el paquete, lo que debería actualizar el valor de integrity :
npm install file:../lib/me-base-library-1.0.0.tgzPara automatizar esto, puede crear un script npm:
{ "scripts": { "update-base": "npm install file:../lib/me-base-library-1.0.0.tgz" } } npm run update-basePodría solucionar el problema haciendo referencia al directorio de mi biblioteca en lugar del archivo TGZ. npm e yarn (ambos probados) no generan hashes de integridad para carpetas, solo para archivos. En mis archivos package.json de las aplicaciones Angular, acabo de cambiar "@me/base-library": "file:../lib/me-base-library-1.0.0.tgz" a "@me/base-library": "file:../lib" .
Además, tuve que agregar algunas propiedades al archivo package.json de la biblioteca base:
"main": "lib/bundles/me-base-library.umd.js", "module": "lib/fesm2015/me-base-library.js", "es2015": "lib/fesm2015/me-base-library.js", "esm2015": "lib/esm2015/me-base-library.js", "fesm2015": "lib/fesm2015/me-base-library.js", "typings": "lib/me-base-library.d.ts"