首页 > 解决方案 > 当我在 prod 中构建 Angular 9 时,如何摆脱错误消息:“TypeError:无法读取未定义的属性‘trim’”?

问题描述

我使用 VisualStudio 2019 中的 Angular 模板创建了一个 .net core 3.1 / Angular 9 应用程序。

我无法在发布模式下部署应用程序。我已将问题定位到 Angular 9 版本。

我可以使用命令 'ng build' 在 Angular 9 中构建我的应用程序,但是当我尝试使用命令 'ng build --prod' 构建生产时,我收到错误消息“TypeError:无法读取属性 'trim'不明确的”

我不在我的应用程序中使用修剪功能

它似乎来自资产优化 optimize-css-webpack-plugin 资产优化 optimize-css-webpack-plugin

这是日志文件的样子

[error] TypeError: Cannot read property 'trim' of undefined
    at C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\styles.ff78110e0c95cd51fe03.css:7596:5
    at Object.attribute (C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss-minify-selectors\dist\index.js:46:47)
    at C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss-minify-selectors\dist\index.js:208:39
    at C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss-minify-selectors\node_modules\postcss-selector-parser\dist\selectors\container.js:176:26
    at Selector.each (C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss-minify-selectors\node_modules\postcss-selector-parser\dist\selectors\container.js:159:22)
    at Selector.walk (C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss-minify-selectors\node_modules\postcss-selector-parser\dist\selectors\container.js:175:21)
    at C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss-minify-selectors\node_modules\postcss-selector-parser\dist\selectors\container.js:179:31
    at Root.each (C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss-minify-selectors\node_modules\postcss-selector-parser\dist\selectors\container.js:159:22)
    at Root.walk (C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss-minify-selectors\node_modules\postcss-selector-parser\dist\selectors\container.js:175:21)
    at Processor.func (C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss-minify-selectors\dist\index.js:201:27)
    at Processor._runSync (C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss-minify-selectors\node_modules\postcss-selector-parser\dist\processor.js:84:30)
    at Processor.processSync (C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss-minify-selectors\node_modules\postcss-selector-parser\dist\processor.js:177:27)
    at getParsed (C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss-minify-selectors\dist\index.js:34:59)
    at C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss-minify-selectors\dist\index.js:196:39
    at C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss\lib\container.js:239:18
    at C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss\lib\container.js:135:18
    at AtRule.each (C:\[MyAppName]\[MyAppName]\[MyAppName].Web\ClientApp\node_modules\postcss\lib\container.js:101:16)

标签: angularangular9

解决方案


同样的事情发生在我身上,但是在文档中我发现了这个命令,它对我有很大帮助:

ng build --buildOptimizer=false

通过这种方式,我将应用程序构建到生产环境中。


推荐阅读