热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

dojo中的build(或叫压缩)

参考文章:http:www.ibm.comdeveloperworkscnweb0912_shenjc_dojobuild1.工具在dojoutilbuildscripts下,bu

参考文章:http://www.ibm.com/developerworks/cn/web/0912_shenjc_dojobuild/

1.工具在/dojo/util/buildscripts下,build.bat文件

命令:build profile=example action=release releaseName=myDojo optimize=shrinksafe

Profile:指定build使用的profile文件(profile文件需要放在/dojo/util/buildscripts/profiles中);

Action:指定本次命令类型,有三个值:clean, release, help;

releaseName:本次release的名字,默认是dojo;

Optimize:本次build中进行优化的方式,一般使用shrinksage即可;

2.profiles文件

/* example.profile.js */ 
dependencies = {
layers: [ // 可以根据需要制定多个不同的 layer
{
name: "example.js", // 打包生成的 js 文件的名
dependencies: [ // 需要打包的 js 文件列表
"dojo.date",
"dojox.uuid"
]
}
],
prefixes: [ // 设置路径
[ "dijit", "../dijit" ],
[ "dojox", "../dojox" ]
]
}

3.文件所在位置:

在action/releaseName/dojo/中,有profile.js(已压缩的)和profile.uncompressed.js(未压缩)

本例文件是release/myDojo/dojo/example.js

 

4.附加个更高级的profile

/* example.profile.js */ 
dependencies = {
layers: [
{ // 这个 layer 用来打包我们定制的 dojo 文件
name: "mydojo.js",
dependencies: [
"dojo.date",
"dojox.uuid"
]
},
{ // 这个 layer 用于打包我们自己的 js 文件
name: "example.js",
dependencies: [
"my.example1"
]
}
],
prefixes: [
[ "dijit", "../dijit" ],
[ "dojox", "../dojox" ],
[ "my", "../my"]
]
}

-------------------------------------------分割线--------------------------------------------------------

以上内容其实已经太老了,而且对于初学者来说,写的还不够具体!最起码折磨我了两天!愤怒。今天我来完善一下,希望后来人不要再掉进这个坑里面。

dojo的官网有个create build的文章,写的比较权威,不过对于实战主义者来说,怎么写出来最重要,下面我把profile.js文件的内容贴一下。

myapp.profile.js文件内容:

var profile = (function(){
return {
basePath: "../../../../js", //相对于profile.js文件的路径,例如我喜欢把profile.js文件放在util->buildScript->profiles文件夹下
releaseDir: "./app", //相对于basePath路径,现在basePath已经定位到js文件夹下
releaseName: "lib", //在releaseDir文件加下,此处是app文件夹下创建个lib文件夹
action: "release",
layerOptimize: "closure",
optimize: "closure",
cssOptimize: "comments",
mini: true,
stripConsole: "warn",
selectorEngine: "lite",

defaultConfig: {
hasCache:{
"dojo-built": 1,
"dojo-loader": 1,
"dom": 1,
"host-browser": 1,
"config-selectorEngine": "lite"
},
async: 1
},

staticHasFeatures: {
"config-deferredInstrumentation": 0,
"config-dojo-loader-catches": 0,
"config-tlmSiblingOfDojo": 0,
"dojo-amd-factory-scan": 0,
"dojo-combo-api": 0,
"dojo-config-api": 1,
"dojo-config-require": 0,
"dojo-debug-messages": 0,
"dojo-dom-ready-api": 1,
"dojo-firebug": 0,
"dojo-guarantee-console": 1,
"dojo-has-api": 1,
"dojo-inject-api": 1,
"dojo-loader": 1,
"dojo-log-api": 0,
"dojo-modulePaths": 0,
"dojo-moduleUrl": 0,
"dojo-publish-privates": 0,
"dojo-requirejs-api": 0,
"dojo-sniff": 1,
"dojo-sync-loader": 0,
"dojo-test-sniff": 0,
"dojo-timeout-api": 0,
"dojo-trace-api": 0,
"dojo-undef-api": 0,
"dojo-v1x-i18n-Api": 1,
"dom": 1,
"host-browser": 1,
"extend-dojo": 1
},

packages:[{
name: "dojo",
location: "dojo"
},{
name: "dijit",
location: "dijit"
},{
name: "dojox",
location: "dojox"
},{
name: "cbtree", //这里可以放一些扩展包,比如你自己的包
location: "cbtree"
}],

layers: {
"dojo/dojo": {
include: [
"dojo/dojo",
"dojo/i18n",
"dijit/registry",
"dojo/ready",
"dijit/Tree",
"dijit/form/CheckBox",
"dojo/store/Memory", // basic dojo/store
"cbtree/Tree", // Checkbox tree
"cbtree/model/TreeStoreModel", // ObjectStoreModel
"dijit/layout/BorderContainer",
"dojox/layout/ContentPane",
"dijit/layout/TabContainer",
"dojo/store/JsonRest",
"dojo/store/Observable",
'dojo/_base/array',
"dojo/request/xhr",
"dojo/on",
"dojox/grid/EnhancedGrid",
"dojo/data/ItemFileWriteStore",
"dojo/dom",
"dojo/parser",
"dojo/domReady"
],
customBase: true,
boot: true
}
}
};
})();

然后打开cmd->cd到util/buildScripts/文件夹下,

运行:build.bat --profile ./profiles/myapp.profile.js

然后来杯咖啡!

控制台会有一堆的输出,最后,会显示error或者其他信息

**************************************************非常重要*****************************************************************

关键的关键来了!程序会在js的文件夹下生成app/lib/。。。包,此时把生成的dojo,dijit, dojox文件拷贝到项目里面,然后引用生成的dojo.js文件即可。

我之前一直以为,dojo build之后生成的dojo,dijit, dojox等文件不用复制进项目里面,而仅仅是将dojo.js这一个文件拷贝到项目就可以了,但是事件告诉我们这样不行,需要将生成的几个文件一同放在项目中。


 


推荐阅读
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
author-avatar
fionafongkaian
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有