Angular 库项目中的 SVG 组件出现 'Unknown word' 错误

SVG component in Angular library project gives 'Unknown word' error

我正在 Angular 8.1.3

创建一个 npm 库包

如果我在库项目中添加一个 SVG 文件作为组件模板,那么构建命令 ng build <project-name> 会出现 my-comp.component.svg:1:1: Unknown word 错误。

但是,如果我在主应用程序中添加一个 SVG 文件作为组件模板,它就会成功构建。请帮忙。

Angular CLI: 8.1.2
Node: 12.3.1
OS: win32 x64
Angular: 8.1.3
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                            Version
------------------------------------------------------------
@angular-devkit/architect          0.801.2
@angular-devkit/build-angular      0.801.2
@angular-devkit/build-ng-packagr   0.801.2
@angular-devkit/build-optimizer    0.801.2
@angular-devkit/build-webpack      0.801.2
@angular-devkit/core               8.1.2
@angular-devkit/schematics         8.1.2
@angular/cli                       8.1.2
@ngtools/json-schema               1.1.0
@ngtools/webpack                   8.1.2
@schematics/angular                8.1.2
@schematics/update                 0.801.2
ng-packagr                         5.3.0
rxjs                               6.5.2
typescript                         3.4.5
webpack                            4.35.2

我提交了一个错误,看起来它已经被 PRed 了,只需要等它被发布。 https://github.com/angular/angular-cli/issues/15187.

我内联了我的 svg,我认为它有效,你可以同时尝试一下。

我能够使用以下步骤解决此问题:

  1. 使用

    将 Angular CLI 更新到最新版本

    npm install @angular/cli

  2. 更新 ng-packagr 使用

    npm i ng-packagr@latest

  3. 在库项目的根模块中导入BrowserModule

    import { BrowserModule } from '@angular/platform-browser';

    ...

    @NgModule({ imports: [ BrowserModule ]

  4. 然后使用ng build my-project命令构建项目