Acabo de actualizar un entorno con nrwl de la versión angular 11 a la 12 con dos aplicaciones angulares y varias bibliotecas. Después de la actualización cuando intento compilar usando la configuración de optimización:
angular.json
{ .... "optimization": { "scripts": true, "styles": { "minify": true, "inlineCritical": false }, "fonts": true }, }Me da el siguiente error (archivos de componentes sass y scss):
/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/libs/ui-share-components/src/lib/top-panel/top-panel/top-panel.component.sass - Error: /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/libs/ui-share-components/src/lib/top-panel/top-panel/top-panel.component.sass from Css Minimizer Error: Transform failed with 1 error: error: Invalid version: "15.2-15.3" at failureErrorWithLog (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:1493:15) at /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:1282:29 at /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:629:9 at handleIncomingPacket (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:726:9) at Socket.readFromStdout (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:596:7) at Socket.emit (events.js:315:20) at addChunk (_stream_readable.js:309:12) at readableAddChunk (_stream_readable.js:284:9) at Socket.Readable.push (_stream_readable.js:223:10) at Pipe.onStreamRead (internal/stream_base_commons.js:188:23)Deshabilitar estilos.minify y fonts compila sin problemas:
"optimization": { "scripts": true, "styles": { "minify": false, "inlineCritical": false }, "fonts": false }, }Motivo del problema
Se espera que browserslist devuelva una entrada para cada versión ("safari 15.2", "safari 15.3") en lugar de un rango ("safari 15.2-15.3"). Por lo tanto, esto es solo un error en la lógica de análisis de las versiones del navegador Safari que debe corregirse y se corregirá pronto en las versiones fijas de Angular 12 / Angular 13 . El enlace a los detalles está aquí .
ACTUALIZACIÓN IMPORTANTE:
Esto se solucionó en v12.2.16 y v13.2.1, actualice si tiene este problema. Los usuarios de v11 no deberían verse afectados. El enlace a los detalles está aquí . Si no puede/no desea actualizar por algún motivo, puede utilizar una de las siguientes soluciones alternativas.
Soluciones alternativas :
Modificar .browserslistrc
Agregue a .browserslistrc tales líneas:
not ios_saf 15.2-15.3 # temporary solution to avoid build issues https://github.com/nrwl/nx/issues/8768 not safari 15.2-15.3 # temporary solution to avoid build issues https://github.com/nrwl/nx/issues/8768Tiene que venir DESPUÉS de cualquier mención de ios_saf o safari. De lo contrario, no funciona. El enlace a la solución está aquí .
Borrar contenido de .browserslistrc
Borrar el contenido de .browserslistrc ayuda a corregir compilaciones. El enlace a la solución está aquí .
Eliminar .browserslistrc
La eliminación de .browserslistrc ayuda a corregir compilaciones. El enlace a la solución está aquí .
Instalar caniuse-lite
Agregue el paquete caniuse-lite:
npm install caniuse-lite@1.0.30001303 --save-dev --save-exactEl enlace a la solución está aquí .
Verifique su archivo .browserslistrc , puede agregar not ios_saf 15.2-15.3 para eliminar el rango de navegador ios safari no válido. Fuente: https://github.com/angular/angular-cli/issues/22606#issuecomment-1025000846