仅将 DefaultUrlSerializer class 导入 Angular 项目而没有整个路由器模块

Importing just DefaultUrlSerializer class into an Angular project without entire router module

以下导入语句将整个路由器模块拉入最终的 webpack 包中。

import { DefaultUrlSerializer } from '@angular/router';

有没有办法只导入 DefaultUrlSerializer 而没有其他不相关的模块?

我正在使用 Webpack 模块构建器和 Angular Cli 进行 AOT/production 构建。

不,您不能这样做,除非您自己构建 Angular。 npm 包不单独提供模块,而是作为一个 UMD 格式的捆绑包提供:

  node_modules
    @angular
       router
         bundles
           router.umd.js

无论您如何导入 DefaultUrlSerializer,webpack 都将在最终构建中包含整个 router.umd.js 的内容,因为它无法从文件中提取代码。