我刚刚将nrwl的环境从 Angular 版本 11 升级到 12,其中包含两个 Angular 应用程序和几个库。更新后,当我尝试使用优化设置进行编译时:
角度.json
{
....
"optimization": {
"scripts": true,
"styles": {
"minify": true,
"inlineCritical": false
},
"fonts": true
},
}
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误(sass 和 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)
Run Code Online (Sandbox Code Playgroud)
禁用 styles.minify 和 fonts 编译没有问题:
"optimization": {
"scripts": true,
"styles": {
"minify": false,
"inlineCritical": false
},
"fonts": false
},
}
Run Code Online (Sandbox Code Playgroud)
Ser*_*e P 16
问题原因
预计browserslist会返回每个版本的条目(“safari 15.2”、“safari 15.3”)而不是范围(“safari 15.2-15.3”)。因此,这只是 Safari 浏览器版本的解析逻辑中的一个错误,需要纠正,并将很快在Angular 12 / Angular 13的修复版本中完成。详细信息链接在这里。
重要更新:
此问题已在 v12.2.16 和 v13.2.1 中修复,如果您遇到此问题,请更新。使用 v11 的用户不应受到影响。详细信息链接在这里。如果您因任何原因不能/不想更新,则可以使用以下解决方法之一。
解决方法:
修改.browserslistrc
添加到.browserslistrc这样的行:
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/8768
Run Code Online (Sandbox Code Playgroud)
它必须出现在任何提及 ios_saf 或 safari 之后。否则,它不起作用。解决方法的链接位于此处。
删除 .browserslistrc 的内容
删除.browserslistrc的内容有助于修复构建。解决方法的链接位于此处。
删除.browserslistrc
删除.browserslistrc有助于修复构建。解决方法的链接位于此处。
安装 caniuse-lite
添加 caniuse-lite 包:
npm install caniuse-lite@1.0.30001303 --save-dev --save-exact
Run Code Online (Sandbox Code Playgroud)
解决方法的链接位于此处。
归档时间: |
|
查看次数: |
5274 次 |
最近记录: |