我们都知道,dojo可以通过build来提升应用系统的加载效率和用户使用感受,可是到底自己的应用系统应该怎样 build,却有点糊涂,后面是我们在开发 RIAEasy 时编写的一个 build profile,配有详细的解说,或者对您有用。

需要说明的是,dojo1.8是一个分水岭,本配置适用于 dojo1.8+。

var profile = (function(){return {basePath: "../../../dojo-1.10.4-src",///相对于本文件的路径,接下类的编译都从这里开始计算。关联编译配置的文件位置。releaseDir: "../../webLib/dojo-1.10.4-min",///相对于 basePath,编译目标目录,编译器会覆盖它发现的一切。releaseName: "",action: "release",//一般就这样写,不要修改。//默认值为"shrinksafe"。若该值为false,则关闭压缩。shrinksafe.keeplines, closure, closure.keeplines comments,comments.keeplines///dojo1.7+建议用closure。layerOptimize: "comments.keeplines",//设置那些不是层的模块的压缩设置,默认为false,其他值和layerOptimize相同///dojo1.7+建议用closure。optimize: "comments.keeplines",//处理CSS的优化。默认为false。若为comments则去除注释和换行,并连接任何@import命令。其他可选的值有comments.keeplines,剔除注释和连接@import命令,但是保留换行。cssOptimize: "comments",//决定编译过程中是否最小化。如果为真则标记为miniExcludes的文件被排除在外就像tests那样,demo和其他元素对于编译不是必需的。默认的为false。mini: true,stripConsole: "none",///处理输出代码中的conole语名, 默认为"normal", 会删除所以console语句,除了console.error 和 console.warn.最需注意的是,这个特征只在优化级别时才适用。否则它会被忽略。 另外可能的值为"none", "warn" 和"all"//selectorEngine: "lite",///标识默认的选择器引擎。这不会直接使代码变小,它确保选择器引擎不包含其他的调用。默认没有设置,Dojo包含两个引擎lite和acme。defaultConfig: {///应用中的 html 中需要的 dojoConfighasCache:{"dojo-built": 1,"dojo-loader": 1,"config-selectorEngine": "lite","dom": 1,"host-browser": 1},has: {"dojo-publish-privates": 1,"dojo-undef-api": 1},bindEncoding: 'UTF-8',isDebug: 1,"config-deferredInstrumentation": 1,//是否自动加载那些会报告un-handled rejected promises的代码"config-dojo-loader-catches": 1,//是否 catch 加载模块时的error handling"dojo-trace-api": 1,//Disables the tracing of module loading.是否跟踪模块加载过程"dojo-log-api": 1,//是否记录加载器的日志?parseOnLoad: 0,async: 1,//cacheBust: new Date(),waitSeconds: 30,//locale: 'zh-cn',//extraLocale: ['en'],packages: [{name: 'dijit', location: '../dijit'},{name: 'dojox', location: '../dojox'},{name: 'rias', location: '../rias', main: 'riasw/riasw'},{name: 'appRoot', location: '../appRoot', main: 'appRoot'},{name: 'appModule', location: '../appModule', main: 'appModule'}]},staticHasFeatures: {//build 时使用的额外的 dojoConfig"config-deferredInstrumentation": 1,//是否自动加载那些会报告un-handled rejected promises的代码"config-dojo-loader-catches": 1,//是否 catch 加载模块时的error handling"config-tlmSiblingOfDojo": 0,//是否支持非标准的模块解析代码"dojo-amd-factory-scan": 0,//是否扫描所有的模块对AMD的支持"dojo-combo-api": 0,//是否支持一些老式的加载器API"dojo-config-api": 1,//是否保证 build 是可以配置的"dojo-config-require": 1,//是否可以配置require()"dojo-debug-messages": 1,//是否包含检测diagnostic 信息"dojo-dom-ready-api": 1,//是否保证 DOM ready API 是可用的//设为0才能支持 Rhino"dojo-firebug": 1,//是否为那些没有开发者控制台(developer console)的浏览器启用firebug lite (e.g. IE6)"dojo-guarantee-console": 1,//是否使那些不能使用控制台的浏览器可以使用console(e.g. IE6)"dojo-has-api": 1,//是否使得 has 功能检测API 是可用的"dojo-inject-api": 1,//是否支持跨域加载模块"dojo-loader": 1,//是否使得加载器是可用的"dojo-log-api": 1,//是否记录加载器的日志?"dojo-modulePaths": 1,//是否支持那些和加载模块相关的老式API"dojo-moduleUrl": 1,//是否那些和加载模块相关的老式API"dojo-publish-privates": 1,//是否显示加载器的一些内部信息"dojo-requirejs-api": 1,//是否支持RequireJS。"dojo-sniff": 1,//是否当从一个CDN加载模块的时候,启用一些老式的模块加载行为?//设为0才能支持 Rhino"dojo-sync-loader": 0,//是否采用同步加载器"dojo-test-sniff": 1,//Disables some features for testing purposes.是否包含测试代码"dojo-timeout-api": 1,//Disables code dealing with modules that don’t load.?//设为0才能支持 Rhino"dojo-trace-api": 1,//Disables the tracing of module loading.是否跟踪模块加载过程"dojo-undef-api": 1,//是否包含对模块卸载的支持"dojo-v1x-i18n-Api": 1,//启动对v1.x 国际化加载的支持 ( Dijit需要使用)"dojo-xhr-factory": 1,///Rhino需要设为0"dom": 1,//Ensures the DOM code is available.保证DOM 代码可用//设为0才能支持 Rhino"host-browser": 1,//确定构建的代码是用于浏览器平台的//设为0才能支持 Rhino"host-rhino": 0,"host-node": 0,"extend-dojo": 1,//Ensures pre-Dojo 2.0 behavior is maintained.保证  pre-Dojo 2.0行为是被维护的。//"dom-addeventlistener": 0,///old ie = 0"touch": 1,"dojo-bidi" : 0,"dojo-parser": 1,"dojo-mobile-parser": 1},packages:[{///需要 build 系统处理的内容name: "dojo",location: "dojo"///相对于 basePath},{name: "dijit",location: "dijit"///相对于 basePath},{name: "dojox",location: "dojox"///相对于 basePath}],layers: {/// build 系统处理后生成的打包文件,一个 layer 对应一个文件。"dojo/dojo": {include: [///合并到打包后的文件"dojo/i18n","dojo/_base/declare","dojo/_base/sniff","dojo/_base/lang","dojo/_base/config","dojo/_base/array","dojo/_base/Deferred","dojo/_base/json","dojo/cache","dojo/errors/create","dojo/errors/CancelError","dojo/number","dojo/string","dojo/aspect","dojo/Deferred","dojo/promise/tracer","dojo/promise/Promise","dojo/promise/all","dojo/when","dojo/topic","dojo/date/locale","dojo/date/stamp","dojo/store/Observable","dijit/Destroyable","dojo/regexp","dojo/has","dojo/sniff",//riasw需要的//"dojo/selector/lite","dojo/_base/Color","dojo/keys","dojo/mouse","dojo/touch","dojo/on","dojo/Evented","dojo/errors/RequestError","dojo/errors/RequestTimeoutError","dojo/parser","dojo/_base/connect","dojo/_base/window","dojo/window","dojo/_base/event","dojo/_base/html","dojo/_base/browser","dojo/dom","dojo/dom-construct","dojo/dom-geometry","dojo/dom-class","dojo/dom-style","dojo/dom-attr","dojo/dom-prop","dojo/query","dojo/ready","dojo/cookie","dojo/throttle",//"dojo/request","dojo/_base/fx","dojo/fx","dojo/fx/easing","dojo/fx/Toggler","dojox/fx/_base"],exclude: [///不合并到打包后的文件,即使上面 include 有定义或递归引用"dojo/_base/kernel","dojo/on",///has!dom-addeventlistener 需要检测浏览器,不能预先设定值"dojo/request/watch"///has!dom-addeventlistener 需要检测浏览器,不能预先设定值],customBase: true,///最好只把 dojo/dojo 设为 customBase,未做深入解析。boot: true///同上},"dijit/dijit": {include: ["dijit/_base","dijit/_WidgetBase","dijit/_Widget","dijit/registry","dijit/_Container","dijit/_Contained","dijit/_CssStateMixin","dijit/_KeyNavMixin","dijit/_KeyNavContainer","dijit/_FocusMixin","dijit/_OnDijitClickMixin","dijit/_Templated","dijit/_TemplatedMixin","dijit/_WidgetsInTemplateMixin","dijit/a11y","dijit/a11yclick","dijit/focus","dijit/hccss","dijit/place","dijit/popup","dijit/selection","dijit/Viewport","dijit/layout/utils","dijit/form/_AutoCompleterMixin","dijit/form/_ButtonMixin","dijit/form/_FormMixin","dijit/form/_FormValueMixin","dijit/form/_FormValueWidget","dijit/form/_FormWidget","dijit/form/_FormWidgetMixin","dijit/form/Form","dijit/form/Button","dijit/form/ValidationTextBox","dijit/tree/_dndContainer","dijit/tree/_dndSelector","dijit/Tree","dijit/DialogUnderlay","dijit/Tooltip","dijit/TooltipDialog","dijit/Menu","dijit/MenuBar","dijit/MenuBarItem","dijit/MenuSeparator","dijit/PopupMenuItem","dijit/PopupMenuBarItem","dijit/Toolbar","dijit/ToolbarSeparator","dojox/layout/ContentPane","dojox/layout/ResizeHandle","dijit/layout/BorderContainer","dijit/layout/LayoutContainer","dijit/layout/TabContainer"],exclude: ["dojo/dojo","dojo/_base/kernel","dojo/on",///has!dom-addeventlistener 需要检测浏览器,不能预先设定值"dojo/request/watch"///has!dom-addeventlistener 需要检测浏览器,不能预先设定值]},"dijit/Editor": {include: ["dijit/_editor/plugins/AlwaysShowToolbar","dijit/_editor/plugins/FullScreen","dijit/_editor/plugins/NewPage","dijit/_editor/plugins/Print","dijit/_editor/plugins/ViewSource","dijit/_editor/plugins/FontChoice","dijit/_editor/plugins/EnterKeyHandling","dijit/_editor/plugins/ToggleDir","dijit/_editor/plugins/LinkDialog","dijit/_editor/plugins/TabIndent","dojox/html/entities","dojox/editor/plugins/ResizeTableColumn","dojox/editor/plugins/AutoSave","dojox/editor/plugins/AutoUrlLink","dojox/editor/plugins/BidiSupport","dojox/editor/plugins/Blockquote","dojox/editor/plugins/Breadcrumb","dojox/editor/plugins/CollapsibleToolbar","dojox/editor/plugins/EntityPalette","dojox/editor/plugins/FindReplace","dojox/editor/plugins/InsertAnchor","dojox/editor/plugins/InsertEntity","dojox/editor/plugins/LocalImage","dojox/editor/plugins/NormalizeIndentOutdent","dojox/editor/plugins/NormalizeStyle","dojox/editor/plugins/PageBreak","dojox/editor/plugins/PasteFromWord","dojox/editor/plugins/PrettyPrint","dojox/editor/plugins/Preview","dojox/editor/plugins/SafePaste","dojox/editor/plugins/Save","dojox/editor/plugins/ShowBlockNodes","dojox/editor/plugins/Smiley","dojox/editor/plugins/SpellCheck","dojox/editor/plugins/StatusBar","dojox/editor/plugins/TablePlugins","dojox/editor/plugins/TextColor","dojox/editor/plugins/ToolbarLineBreak","dojox/editor/plugins/UploadImage"],exclude: ["dojo/dojo","dijit/dijit","dojo/_base/kernel","dojo/on",///has!dom-addeventlistener 需要检测浏览器,不能预先设定值"dojo/request/watch"///has!dom-addeventlistener 需要检测浏览器,不能预先设定值]}}};
})();

关于dojo的build系统相关推荐

  1. 理解 Android Build 系统

    Android Build 系统是用来编译 Android 系统,Android SDK 以及相关文档的一套框架.众所周知,Android 是一个开源的操作系统.Android 的源码中包含了许许多多 ...

  2. 第2章:Android的编译环境--build系统

    2.0 build简介 Android的build系统基于GNU Make 和shell 构建的一套编译环境.这套系统定义了大量的变量和函数,无论编写一个产品的配置文件还是一个模块的Android.m ...

  3. Android系统篇(二)——Android编译核心Build系统

    <深入解析Android5.0系统> 一书笔记 Android的Build系统非常的庞大,他是基于GUN Make以及shell来构建的,我们主要的面对方向是Android.mk文件,这也 ...

  4. 了解一下,Android 10 Build系统

    源起 因工作原因不得不重新抄起Android源代码开始看.这次就直接上Android 10.0了.当把代码导入Source Insight后,感慨万千.我一度觉得对TA的熟悉简直超过对自己的身体... ...

  5. sublime build 系统必读

    http://sublime-text.readthedocs.io/en/latest/reference/build_systems.html Build Systems Build system ...

  6. android build系统

    http://www.ibm.com/developerworks/cn/opensource/os-cn-android-build/

  7. Dojo学习笔记一: 认识Dojo

        打算利用一些时间系统并且略深层次的学习一下Dojo这个框架,一个基于JavaScript脚本语言的集合.      Dojo不但提供各式各样的Javascript标准库方法,还包含了功能丰富的 ...

  8. Dojo:不容忽视的RIA框架

    2019独角兽企业重金招聘Python工程师标准>>> Dojo:不容忽视的RIA框架 作者 王沛 发布于 2010年12月9日 领域  语言 & 开发 主题  Dojo , ...

  9. Android之android.os.Build

    一.类概述:从系统属性中提取设备硬件和版本信息. 二.内部类: 1.Build.VERSION 各种版本字符串 2.Build.VERSION_CODES 目前已知的版本代码的枚举类 三.常量:UNK ...

最新文章

  1. macos docker 安装mysql,mac 中docker安装mysql的图文教程
  2. java学习(118):vector类
  3. 1982:【19CSPJ普及组】数字游戏 scratch C++
  4. 完美运营牛帮任务平台源码 仿悬赏猫支持封装APP
  5. C++静态成员函数小结(转)
  6. npm + webpack +react
  7. Spring Controller – Spring MVC控制器
  8. centen os7 源码安装git2.17.0
  9. ubuntu php oracle,Oracle数据库之php在ubuntu上安装oracle的扩展
  10. 中心极限与大数定理律的关系_21厦大数学考研 | 数列与函数极限复习建议!
  11. 开发人员的 Chrome 翻译设置
  12. C# 多线程如何访问同一个数据
  13. html网页常用功能:下拉框模糊搜索
  14. gulp入门详解之基本操作
  15. GUI设计和UI设计有什么区别?
  16. 抖音企业号抖音智能营销系统源码待开发技术。。。。。
  17. python保留字-Python保留字
  18. (二)Redis数据类型和操作
  19. liunx服务器 telnet 带用户名 端口登陆方法
  20. hp固态硬盘安装系统,找不到驱动器和iaStorAfs.sys问题处理

热门文章

  1. 关于微信公众号短链接数量和时效说明
  2. modelsim 2020在windows 11下安装后打开失败
  3. 2020年主流服务器主板,2020年主流处理器排行榜
  4. python显示html内容自动换行_canvas绘制文本内容自动换行
  5. echarts柱形图渐变样式设置
  6. 盛世狂欢意犹未尽之恋舞OL折扣平台多角度体验
  7. 今天520,要及时「缓存」你们的珍贵时光。
  8. Windows通过注册表删除文件资源管理器中无用的快捷方式
  9. 并联机器人开题报告怎么写_运动康复与健康毕业论文开题报告
  10. 暗黑1.09服务器搭建