javascript - 如何结合非 AMD 代码构建 Dojo?
问题描述
我有一个自定义浏览器应用程序,它通过require
调用加载一些 Dojo AMD 模块,并且我正在尝试创建一个自定义 Dojo 构建以消除在每次页面加载时加载多个 JS 文件的开销。
我的应用程序代码是非 AMD 的。require
只要浏览器加载我的 JS 文件,它就会调用全局级代码。这在开发中运行良好,我想尽可能避免将其更改为 AMD。
为此,我想要一个将我所需的 Dojo 模块和我的应用程序代码组合到一个缩小的 JS 文件中的构建,但我的应用程序代码处于全局级别(不以任何方式包装),因此它可以按原样工作。
我的构建有以下profile.js
文件。这几乎可以满足我的要求,但是它将我的应用程序代码包装在一个阻止它工作的函数中。如何告诉构建过程不要包装我的应用程序代码?
我目前正在使用 Dojo 1.10.10,但如果有帮助可以升级它。
var profile = (function(){
var dojoBase='../../dojo-release-1.10.10-src/';
return {
basePath: './src',
releaseDir: '../release',
releaseName: 'main',
action: 'release',
cssOptimize:'comments',
mini:true,
stripConsole:'none',
selectorEngine:'acme',
packages:[{
name: 'dojo',
location: dojoBase+'dojo'
},{
name: 'dijit',
location: dojoBase+'dijit'
},{
name: 'dojox',
location: dojoBase+'dojox'
},{
name: 'app',
location: '.',
}],
layers:{
'main.min':{
include:['dojo/dojo','dojo/on','dojo/request/xhr','dojo/parser','dojo/query','dojo/dom-construct',
'dojo/dom-class','dojo/NodeList-dom','dojo/domReady','dijit/registry','dojox/widget/Toaster',
'app/main'],
customBase:true,
boot:true
}
}
};
})();
解决方案
推荐阅读
- apache-kafka - 如何在 Spring Kafka 中实现消息排序
- c++ - 如何在 if constexpr 逻辑中使用静态断言?
- python - 如何在 django 的序列化器字段中设置上下文值?
- java - java.lang.NoSuchFieldError:graphql/schema/idl/ScalarInfo.STANDARD_SCALAR_DEFINITIONS
- php - Php doc:键入一个字符串类名,该类名将始终实现给定的接口
- delphi - 过滤 ADOTable 错误 - “无法将 Null 类型转换为 OleStr 类型”
- uiscrollview - 在添加新项目视图 SwiftUI 中显示选定的 ScrollView 项目
- c# - 将命名空间加载到 OPC UA 服务器 c#
- driverkit - IOBufferMemoryDescriptor 是否应该被释放?
- python - 如何从 Numpy 数组中删除基于多列条件的行?