如何配置Dojo模块加载器自动追加.min.js后缀?
配置Dojo模块加载器请求.min.js后缀
当然可以!针对你的场景,有几种灵活的方式来配置Dojo加载器,让它优先请求.min.js后缀的模块文件,下面是最适合你的几种方案:
方案一:针对特定包配置模块后缀优先级
如果只希望你的my-module包下的模块加载.min.js,可以在包配置里添加moduleSuffixes属性,指定加载器尝试的后缀顺序。这种方式不会影响其他包的模块加载行为,是最推荐的方案:
window.dojoConfig = { async: true, packages: [ { name: 'my-module', location: "https://my-domain.com/dist/", // 先尝试加载.min.js,若找不到再回退到.js(你的场景里也可以只写['min.js']) moduleSuffixes: ['min.js', 'js'] } ] };
配置完成后,当你执行require(['my-module/components/some-component'])时,加载器会自动请求https://my-domain.com/dist/components/some-component.min.js,完全匹配你的目录结构需求。
方案二:全局配置模块后缀(影响所有包)
如果你希望所有模块都优先加载.min.js版本,可以在dojoConfig里直接添加全局的moduleSuffixes配置:
window.dojoConfig = { async: true, packages: [ { name: 'my-module', location: "https://my-domain.com/dist/" } ], moduleSuffixes: ['min.js', 'js'] };
这种方式适合所有模块都只有压缩版本的场景,但如果有其他包需要加载未压缩的.js文件,可能会出现加载失败的情况,所以仅在全局都使用压缩包时推荐。
方案三:单个模块路径映射(适合少量组件)
如果你的压缩组件数量不多,也可以用map配置直接将特定模块映射到带.min的路径:
window.dojoConfig = { async: true, packages: [ { name: 'my-module', location: "https://my-domain.com/dist/" } ], map: { '*': { 'my-module/components/some-component': 'my-module/components/some-component.min' } } };
这种方式能精准控制单个模块的路径,但组件数量较多时配置会比较繁琐。
内容的提问来源于stack exchange,提问作者TwitchBronBron
相关产品推荐
相关产品推荐

