为什么在 Angular 中打开 "Optimization" 会导致 PrimeNg 元素正确渲染出现问题?
Why does turning on "Optimization" in Angular create problems with PrimeNg elements rendering correctly?
Angular版本:9.x
Primeng 版本:9.x
我一直遇到 PrimeNg 元素在我们的 dev/prod 环境中渲染不正确的问题,但是,这些元素在本地环境中渲染正确。我已将问题归结为 angular.json 文件中的 'optimization' 标志。当此标志设置为 false 时,样式将按预期呈现。但是,当该标志设置为 true 时,似乎某些 CSS 样式在那些导致不需要的样式的环境中被覆盖。
例如,当使用 PrimeNg 库中的 <p-carousel>
元素时,此元素会以意想不到的样式呈现按钮。此外,当在 <p-dialog>
元素上将 [modal]=true
属性 设置为 true 时,它不会执行预期的将背景变灰的行为。
我试图避免将优化标志设置为 false,因为它会增加构建大小。
目前采用的解决方法:
- 正在试验 Angular.json 属性。
- 正在尝试不同的 Typescript 版本(在 tsconfig.json 中将目标设置为 ES5)
轮播正确呈现:
旋转木马渲染不正确(注意蓝色 arrows/squares):
为什么设置此字段会影响 CSS 的呈现方式?除了将 'optimization' 设置为 false 之外,还有其他一些我可以使用的被忽略的修复吗?
我遇到了同样的问题,它在使用 ng serve 和 build --prod/optimization=false 构建时有效,当您使用 --prod 和 optimization=true 构建时调用 enableProdMode() 修复了问题,这里描述了这个问题 #8724
我遇到了同样的问题。感谢 Marcos Herrera 的回答,我找到了我总结如下的解决方案:
首先 - 运行 ng serve
模式并检查 <p-carousel>
元素的第一个 <div>
中需要哪些 class。在我的例子中有 ui-carousel ui-widget ui-carousel-horizontal
:
其次 - 将此 class 添加到 styleClass 属性中的标签:
<p-carousel styleClass="ui-carousel ui-widget ui-carousel-horizontal">
Angular版本:9.x
Primeng 版本:9.x
我一直遇到 PrimeNg 元素在我们的 dev/prod 环境中渲染不正确的问题,但是,这些元素在本地环境中渲染正确。我已将问题归结为 angular.json 文件中的 'optimization' 标志。当此标志设置为 false 时,样式将按预期呈现。但是,当该标志设置为 true 时,似乎某些 CSS 样式在那些导致不需要的样式的环境中被覆盖。
例如,当使用 PrimeNg 库中的 <p-carousel>
元素时,此元素会以意想不到的样式呈现按钮。此外,当在 <p-dialog>
元素上将 [modal]=true
属性 设置为 true 时,它不会执行预期的将背景变灰的行为。
我试图避免将优化标志设置为 false,因为它会增加构建大小。
目前采用的解决方法:
- 正在试验 Angular.json 属性。
- 正在尝试不同的 Typescript 版本(在 tsconfig.json 中将目标设置为 ES5)
轮播正确呈现:
旋转木马渲染不正确(注意蓝色 arrows/squares):
为什么设置此字段会影响 CSS 的呈现方式?除了将 'optimization' 设置为 false 之外,还有其他一些我可以使用的被忽略的修复吗?
我遇到了同样的问题,它在使用 ng serve 和 build --prod/optimization=false 构建时有效,当您使用 --prod 和 optimization=true 构建时调用 enableProdMode() 修复了问题,这里描述了这个问题 #8724
我遇到了同样的问题。感谢 Marcos Herrera 的回答,我找到了我总结如下的解决方案:
首先 - 运行 ng serve
模式并检查 <p-carousel>
元素的第一个 <div>
中需要哪些 class。在我的例子中有 ui-carousel ui-widget ui-carousel-horizontal
:
其次 - 将此 class 添加到 styleClass 属性中的标签:
<p-carousel styleClass="ui-carousel ui-widget ui-carousel-horizontal">