鸿蒙 的模块化编译

发布时间:2026/7/25 13:40:37
鸿蒙 的模块化编译 鸿蒙开发中模块化编译是基于ES Module的Bundleless编译模式。API 10及以上版本的Stage工程默认开启模块化编译可有效缩短增量编译时间、减小编译后的包体积。一、模块化编译模块化编译是指基于ES Module的Bundleless编译模式使用原生ES Module规则构建源码。版本要求说明API 10及以上Stage工程默认开启模块化编译FA模板依然使用基于bundle打包的构建方式二、解决的问题模块化编译解决了Bundle编译打包模式引入的问题问题说明重复打包与运行时加载同一个模块多次引用导致重复打包运行状态无法共享单例模式运行异常编译耗时过长修改单个模块文件需要完整重新编译打包全局变量污染传统打包模式存在全局变量污染问题三、核心价值价值说明增量编译时间极大减少修改单个模块代码无需整包编译构建模块缓存利用率高基于ESModule规则模块内变量变化能及时反映到模块本身动态实时绑定解决单例问题模块间状态共享正常减少ROM size包的体积减小提升开发效率各模块基于接口开发解决变量污染等问题四、其他规格说明推荐度hap引用同工程下其他hap代码支持但不推荐不推荐hap通过oh-package.json5引用同工程下其他hap代码支持但不推荐不推荐引用工程外代码或工程内任意创建目录下代码不支持编译报错禁止hap通过harstatic library引用公共代码推荐推荐hap通过hspshared library引用共享库推荐共享状态推荐推荐方式推荐使用har静态库组织公共代码并引用 ↓ 或使用hsp共享库引用共享库实现状态共享不推荐方式hap引用同工程下其他hap代码 → 不推荐 ↓ hap通过oh-package.json5引用同工程下其他hap代码 → 不推荐五、核心点要点说明开启条件API 10及以上Stage工程默认开启对比对象Bundle打包模式FA模板仍使用核心机制基于ES Module的Bundleless编译引用方式har静态库或 hsp共享库引用方式对比方式适用场景特点har静态库公共代码组织代码被编译到引用方hsp共享库共享库状态共享独立打包鸿蒙API 10 Stage工程默认开启基于ES Module的模块化编译Bundleless解决重复打包、编译耗时长、全局变量污染问题推荐使用har静态库或hsp共享库组织公共代码不推荐hap引用同工程下其他hap代码禁止引用工程外代码。