Build Dojo构建到单个文件
我想将我的Dojo JavaScript代码构建到一个单个JavaScript文件中,我已经仔细地将这些代码构建到包中。我对怎么做有点困惑 现在我有这个:Build Dojo构建到单个文件,build,dojo,Build,Dojo,我想将我的Dojo JavaScript代码构建到一个单个JavaScript文件中,我已经仔细地将这些代码构建到包中。我对怎么做有点困惑 现在我有这个: var profile = { ... layers: { 'app': { include: [ 'dojo/module1', 'dojo/module2', ...,
var profile = {
...
layers: {
'app': {
include: [
'dojo/module1',
'dojo/module2',
...,
'dojo/moduleN',
'package2/module1',
'package2/module2',
...,
'package2/moduleN'
]
}
}
...
};
我真的必须手动将所有模块添加到应用层吗?我不能说“全部”,或者更确切地说,“全部引用”吗?如果我不使用dojo/something模块,我不想包含它。另外,在我的发行版文件夹中,这就是我想要的全部——一个文件
那么,这能实现吗?Clean Dojo仅将引用的模块自动构建到单个JavaScript文件中(当然是缩小和模糊的文件?请查看以下示例: 还可以创建自定义的
dojo.js构建;这在使用AMD时尤其重要,因为默认情况下(为了向后兼容),dojo/main
模块由构建系统自动添加到dojo.js
,这会因为加载代码可能实际不使用的模块而浪费空间。为了创建dojo.js
的自定义构建,只需将其定义为一个单独的层,将customBase和boot都设置为true:
var profile = {
layers: {
"dojo/dojo": {
include: [ "dojo/dojo", "app/main" ],
customBase: true,
boot: true
}
}
};
通过包含应用程序(或模块)的根,可以在单个层中包含整个“应用程序”。请注意,如果该应用程序中的模块不是该应用程序明确需要的,则必须手动包含该模块。请参见上述教程中“层”部分的第二个示例,以了解该示例的说明
如果要更改或自定义项目的布局,还可以定义要包含在图层中的包:
packages: [
{name:'dojo', location:'other/dojotoolkit/location/dojo'},
/* ... */
],
layers: {
'dojo/dojo': { include: ['dojo/dojo'] },
/* ... */
}
如果添加的模块已经依赖于其他模块,则不必指定所有模块。例如,如果将“app/MainApplication”包含到层中,则构建器将包含app/MainApplication依赖的所有模块。如果MainApplication.js涉及项目中的所有内容,那么所有内容都将包括在内。
在构建层的过程中,dojo解析每个模块中的require()和define()调用。然后构建依赖关系树。Nls资源也包括在内。
在代码中,应将层命名为现有包中的文件。在我的构建中,当我用一个单词命名一个层时,它会导致错误。你应该编码
var profile =
layers: {
'existingPackage/fileName': {
...
}
}
如果您想要有一个文件,那么必须在层中包含“dojo/dojo”,并指定customBase和引导标志
Dojo总是在构建层之前构建每个包。您的发布目录中始终有dojo和dijit文件夹,其中包含dojo文件的简化版本。
只需复制所需的图层文件并删除其他所有内容。有一个重要的时刻-您应该将releaseDir
的全部内容复制到服务器上,因为一些*.js文件没有包含在您的构建中(例如i18n)。