【发布时间】:2020-03-05 15:17:43
【问题描述】:
我在我的 Angular 项目中使用 HammerJS 来处理一些手势,例如延迟加载组件中的 panleft 和 panrigth。当我构建应用程序时,延迟加载组件位于单独的包中,但 hammer.js 留在主包中的 node_modules 中。它按预期工作。但是如何在单独的惰性模块中加载hammer.js 以减少主包大小?
我使用 Angular 9 和 Angular 材质。从 ng9 开始,材料不需要 HammerJS。
要安装 HammerJS(它适用于 ng9)我:
1.运行npm install --save hammerjs
2. 添加到main.ts - import 'hammerjs'
3.将HammerModule导入app.module.ts(ng9需要)
我在app.module.ts 中也有自定义配置:
@Injectable()
export class HammerCustomConfig extends HammerGestureConfig {
overrides = { 'pinch': { enable: false }, 'rotate': { enable: false } } as any;
}
像{ provide: HAMMER_GESTURE_CONFIG, useClass: HammerCustomConfig }这样提供的内容
我试过了,还是不行:
1. 将 import 'hammerjs' 移动到延迟加载模块(但 hammer.js 替换为延迟加载模块包)
2. 将HammerModule 移至延迟加载模块
2. 将带有自定义配置的HammerModule 移动到延迟加载模块
4. 1 + 2
5. 1+3
【问题讨论】:
-
只是为了确定,你想让 HammerJS 作为一个延迟加载模块的一部分吗?
-
@Vojtech 是的,对
标签: angular lazy-loading hammer.js