Angular Universal (SSR)“由于选择器错误而跳过规则”

Jua*_*237 3 angular bootstrap-5

复制步骤:

ng new testproject --style scss
cd testproject
ng add @ng-bootstrap/ng-bootstrap
npm run build
Run Code Online (Sandbox Code Playgroud)

它不一定是 ng-bootstrap,它可以是 bootstrap 或 tailwind,基本上任何 scss 框架。

错误看起来像:

1 rules skipped due to selector errors:
  legend+* -> Cannot read properties of undefined (reading 'type')
Run Code Online (Sandbox Code Playgroud)

这个错误发生在构建或服务 ssr 上;开发和生产。

Jua*_*237 5

这个问题可以通过 angular.json 中的以下代码解决

"optimization": {
    "scripts": true,
    "styles": {
        "minify": true,
        "inlineCritical": false
    }
}
Run Code Online (Sandbox Code Playgroud)

该部分需要添加到架构师>构建>配置>生产部分。

但是,如果您使用 ssr,它将无法工作,因为 ssr 是在运行时构建的。所以你不需要 angular.json 中的配置,你必须在 server.js 中进行配置,禁用它。

ngExpressEngine({
    bootstrap: AppServerModule,
    inlineCriticalCss: false,
})
Run Code Online (Sandbox Code Playgroud)