Canalización de Azure: excluya los paquetes ‘ya instalados’ en la compilación angular del comando ‘npm install’

programación


Problema para – Pipeline Azure Build para un proyecto angular.
Tengo que ejecutar el trabajo de instalación de npm cada vez que el proyecto angular se compila con una nueva solicitud de extracción.

Guión – He personalizado 2 paquetes para los requisitos de mi proyecto. No quiero anular estos paquetes cada vez que hay un comando de instalación de npm. Una vez que se anula manualmente, no se debe tocar.

¿Hay alguna manera de ignorar un paquete en particular en package.json una vez instalado?
en otras palabras, ¿es posible instalar un paquete npm solo si aún no se ha instalado?
Buscando alguna dirección de expertos 🙂

Lo que he probado:

1. Excluya estos paquetes del archivo package.json

Problema con esta solución: si tengo que implementar mi aplicación en el nuevo sistema, esos paquetes nunca se instalarán.

2. Agregué estos paquetes a una carpeta diferente e intenté hacer referencia a los paquetes desde allí. No funciona como se esperaba.

Solución 2

Puedes probar lo siguiente;

Usando npm-shrinkwrap.json

1. Personalice e instale paquetes: inicialmente instale y personalice sus paquetes según sea necesario.
2. Genere npm-shrinkwrap.json: ejecute npm Shrinkwrap en el directorio de su proyecto. Este comando crea un archivo npm-shrinkwrap.json que bloquea las versiones de todos los paquetes instalados y sus dependencias.
3. Edite npm-shrinkwrap.json: en npm-shrinkwrap.json, puede editar manualmente las entradas de sus paquetes personalizados para que apunten a sus versiones específicas o copias locales. De esta manera, cada vez que se ejecuta npm install, respeta las versiones y fuentes especificadas en npm-shrinkwrap.json, ignorando cualquier actualización o cambio que normalmente se obtendría del registro de npm.

Si eso no funciona, prueba con rutas locales:

Aprovechando package-lock.json con rutas locales

1. Instale paquetes personalizados localmente: coloque sus paquetes personalizados en un directorio conocido dentro de su proyecto o en algún lugar accesible para su proyecto.
2. Modifique package.json: haga referencia a estos paquetes locales en su package.json especificando sus rutas en lugar de números de versión.

JSON
"dependencies": {
  "custom-package": "file:./path/to/custom-package",
}

3. Confirme package-lock.json: después de ejecutar npm install, asegúrese de que su package-lock.json esté actualizado y envíe este archivo a su repositorio. package-lock.json garantiza que la estructura exacta de su directorio node_modules se replique en instalaciones futuras, incluido el uso de paquetes locales.

Recomendaría utilizar el primero de los métodos; si eso no funciona, puede anular los paquetes.

Uso de .npmrc para anular ubicaciones de paquetes

Configure .npmrc: puede utilizar un archivo .npmrc para anular la ubicación de origen de paquetes específicos. Esto es un poco más avanzado y normalmente se usa para cambiar entre diferentes registros, pero puede especificar rutas locales o URL personalizadas para sus paquetes.

Sin embargo, este enfoque requiere que sus paquetes estén estructurados y puedan instalarse de manera similar a los alojados en registros npm, lo que podría implicar una configuración adicional para sus paquetes personalizados.

コメント

タイトルとURLをコピーしました