在SAPUI5中引入UMD格式Autodesk Viewer(AMD兼容)的问题
Autodesk Viewer 7.115.0版本在SAPUI5/RequireJS环境中的兼容性问题
Autodesk Viewer于11月28日升级至7.115.0版本,模块格式改为通用模块定义(UMD)。在基于RequireJS(支持异步模块定义AMD)的SAPUI5环境中引入该脚本时,因sap.viz库依赖的RequireJS会写入全局define函数,UMD检测到AMD注册表后,Viewer通过define([], t)注册为匿名AMD模块,不再暴露全局Autodesk变量,引发兼容性问题。
我们尝试了三种解决思路:
- 从RequireJS注册表引入模块,但匿名模块的标识符无法确定,无法正常获取Viewer实例
- 通过UI5/RequireJS的shim配置,可成功加载初始脚本,也能通过
require(['autodesk/viewer3D'])获取模块,但出现扩展资源从localhost加载而非Autodesk官方部署地址的错误 - 期望Viewer支持
amdWebGlobal配置项,以此保留全局Autodesk变量,兼容原有代码逻辑
此外,请求Autodesk开发者在版本变更日志中明确标注该破坏性变更,帮助其他开发者提前规避问题。
问题可通过Codepen示例复现。
内容的提问来源于stack exchange,提问作者Philipp Kolbe
相关产品推荐
相关产品推荐

