📄 the package system and custom builds the dojo toolkit.mht
字号:
From: <由 Windows Internet Explorer 7 保存>
Subject: The Package System and Custom Builds | The Dojo Toolkit
Date: Sun, 2 Dec 2007 16:36:43 +0800
MIME-Version: 1.0
Content-Type: multipart/related;
type="text/html";
boundary="----=_NextPart_000_0342_01C83501.859011B0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
This is a multi-part message in MIME format.
------=_NextPart_000_0342_01C83501.859011B0
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://dojotoolkit.org/book/dojo-book-0-9/part-4-meta-dojo/package-system-and-custom-builds
=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML lang=3Den xml:lang=3D"en" =
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>The Package System =
and Custom Builds | The Dojo Toolkit</TITLE><!--=0A=
section: docs -->
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dutf-8"><LINK=20
href=3D"/book/dojo-book-0-9/part-4-meta-dojo/performance-optimization"=20
rel=3Dprev><LINK href=3D"/book/dojo-book-0-9/part-4-meta-dojo-0" =
rel=3Dup><LINK=20
href=3D"/book/dojo-book-0-9/part-5-dojox-extensions-dojo-0" rel=3Dnext>
<STYLE type=3Dtext/css>.geshifilter {
FONT-FAMILY: monospace
}
.geshifilter .imp {
FONT-WEIGHT: bold; COLOR: red
}
.geshifilter .kw1 {
FONT-WEIGHT: bold; COLOR: #000066
}
.geshifilter .kw2 {
FONT-WEIGHT: bold; COLOR: #003366
}
.geshifilter .kw3 {
COLOR: #000066
}
.geshifilter .co1 {
COLOR: #009900; FONT-STYLE: italic
}
.geshifilter .coMULTI {
COLOR: #009900; FONT-STYLE: italic
}
.geshifilter .es0 {
FONT-WEIGHT: bold; COLOR: #000099
}
.geshifilter .br0 {
COLOR: #66cc66
}
.geshifilter .st0 {
COLOR: #3366cc
}
.geshifilter .nu0 {
COLOR: #cc0000
}
.geshifilter .me1 {
COLOR: #006600
}
.geshifilter .re0 {
COLOR: #0066ff
}
.geshifilter {
FONT-FAMILY: monospace
}
.geshifilter .imp {
FONT-WEIGHT: bold; COLOR: red
}
.geshifilter .kw1 {
COLOR: #b1b100
}
.geshifilter .kw3 {
COLOR: #000066
}
.geshifilter .es0 {
FONT-WEIGHT: bold; COLOR: #000099
}
.geshifilter .br0 {
COLOR: #66cc66
}
.geshifilter .st0 {
COLOR: #ff0000
}
.geshifilter .nu0 {
COLOR: #cc66cc
}
.geshifilter .re0 {
COLOR: #0000ff
}
.geshifilter .re1 {
COLOR: #0000ff
}
.geshifilter .re2 {
COLOR: #0000ff
}
.geshifilter .re3 {
COLOR: #808080; FONT-STYLE: italic
}
.geshifilter .re4 {
COLOR: #0000ff
}
</STYLE>
<LINK href=3D"/sites/all/themes/dtk/favicon.ico" type=3Dimage/x-icon=20
rel=3D"shortcut icon">
<META content=3Den name=3Dlanguage>
<STYLE type=3Dtext/css media=3Dall>@import url( =
/files/css/4538c7b86f5ddf0e20fe837f59d90fef.css );
</STYLE>
<SCRIPT src=3D"http://dojotoolkit.org/dojo/config/6"=20
type=3Dtext/javascript></SCRIPT>
<SCRIPT=20
src=3D"http://dojotoolkit.org/sites/all/modules/dojo/dtk_build/dojo/dojo.=
js"=20
type=3Dtext/javascript></SCRIPT>
<SCRIPT =
type=3Dtext/javascript>dojo.addOnLoad(function(){dojo.addClass(dojo.body(=
),"tundra");});</SCRIPT>
<SCRIPT type=3Dtext/javascript>dojo.require("dojo.parser");</SCRIPT>
<SCRIPT =
type=3Dtext/javascript>document.documentElement.className=3D"js";</SCRIPT=
>
<SCRIPT src=3D"http://dojotoolkit.org/sites/all/themes/dtk/js/common.js" =
type=3Dtext/javascript></SCRIPT>
<SCRIPT type=3Dtext/javascript>
dojo.require("dijit._base.sniff");
</SCRIPT>
<META content=3D"MSHTML 6.00.6000.16544" name=3DGENERATOR></HEAD>
<BODY class=3D"" id=3Dbdy>
<DIV id=3Dpage-block><!-- region_user_header.php -->
<DIV id=3Dlogin-block><SPAN id=3Duser-header> </SPAN> <SPAN =
id=3Dlogin-prompt><A=20
href=3D"http://dojotoolkit.org/user">Login</A></SPAN> <SPAN =
id=3Dregister-prompt><A=20
href=3D"http://dojotoolkit.org/user/register">Register</A></SPAN> =
</DIV><!-- /region_user_header.php -->
<DIV id=3Dbody-block><!-- region_header.php -->
<DIV id=3Dlogo-block>
<DIV id=3Ddojo-logo><A title=3DHome =
href=3D"http://dojotoolkit.org/"><IMG=20
id=3Ddojo-logo-img alt=3D"The Dojo Toolkit"=20
src=3D"http://dojotoolkit.org/sites/all/themes/dtk/img/banner-logo-text.g=
if"></A>=20
</DIV>
<DIV id=3Dsearch-block>
<FORM id=3Dsearch-theme-form action=3D/search/node method=3Dpost>
<DIV>
<H6 class=3Dhidden><LABEL =
for=3Dsearch_theme_form_keys>Search</LABEL></H6>
<DIV class=3Dcontainer-inline id=3Dsearch>
<DIV class=3Dform-item><INPUT class=3Dform-text =
id=3Dedit-search-theme-form-keys=20
title=3D"Enter the terms you wish to search for." maxLength=3D128 =
size=3D25=20
name=3Dsearch_theme_form_keys><BUTTON class=3Dform-submit =
id=3Dedit-submit-1 name=3Dop=20
type=3Dsubmit><SPAN class=3Dhidden>Search</SPAN></BUTTON> <INPUT=20
id=3Dedit-search-theme-form type=3Dhidden value=3Dsearch_theme_form =
name=3Dform_id>=20
<INPUT id=3Da-unique-id type=3Dhidden =
value=3D3f69e328cbd47ff457e4b25037ebd4be=20
name=3Dform_token> </DIV></DIV></DIV></FORM></DIV></DIV><!-- =
/region_header.php -->
<DIV id=3Dglobal-menu-block>
<UL id=3Dglobal-menu>
<LI id=3Dnav-about><A class=3Dplink =
href=3D"http://dojotoolkit.org/about">About</A>=20
<LI id=3Dnav-demos><A class=3Dplink =
href=3D"http://dojotoolkit.org/demos">Demos</A>=20
<LI id=3Dnav-downloads><A class=3Dplink=20
href=3D"http://dojotoolkit.org/downloads">Downloads</A>=20
<LI id=3Dnav-documentation><A class=3Dplink=20
href=3D"http://dojotoolkit.org/docs">Documentation</A>=20
<LI id=3Dnav-support><A class=3Dplink=20
href=3D"http://dojotoolkit.org/support">Support</A>=20
<LI id=3Dnav-community><A class=3Dplink=20
href=3D"http://dojotoolkit.org/community">Community</A>=20
<LI id=3Dnav-fullmenu><A onclick=3D"return false;"=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-4-meta-dojo/packag=
e-system-and-custom-builds#fullmenu">Full=20
Menu</A> </LI></UL></DIV><!-- region_banner.php -->
<DIV class=3Dbanner-docs id=3Dbanner-block>
<DIV id=3Dsection-heading>
<P>Documentation</P></DIV>
<DIV id=3Dsection-subheading>
<P>learn about the dojo toolkit</P></DIV></DIV><!-- /region_banner.php =
-->
<DIV id=3Dtop-breadcrumb-block>
<DIV class=3Dbreadcrumb><A href=3D"http://dojotoolkit.org/">Home</A> =
=C2=BB <A=20
href=3D"http://dojotoolkit.org/book/dojo-book-0-9-0">The Book of =
Dojo</A> =C2=BB <A=20
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-4-meta-dojo-0">Par=
t 4:=20
Testing, Tuning and Debugging</A> =C2=BB The Package System and Custom=20
Builds</DIV></DIV>
<DIV id=3Dcontent-block>
<DIV class=3Dcols-narrow-wide>
<DIV class=3D"col-a content-region-container" =
id=3Dsidebar-left-container>
<DIV class=3Dcontent-block><!-- Block: menu -->
<DIV class=3D"block block-menu" id=3Dblock-menu-572>
<H2 class=3Dtitle>The Book of Dojo</H2>
<DIV class=3Dcontent>
<UL class=3Dmenu>
<LI class=3Dexpanded id=3Dmenu-item-296><A=20
href=3D"http://dojotoolkit.org/book/dojo-book-0-9-0">The Book of =
Dojo</A>=20
<UL class=3Dmenu>
<LI class=3Dleaf id=3Dmenu-item-312><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-1-life-dojo/quick-=
installation">Quick=20
Installation</A>=20
<LI class=3Dleaf id=3Dmenu-item-652><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/hello-world-tutorial">H=
ello=20
World</A>=20
<LI class=3Dleaf id=3Dmenu-item-651><A=20
=
href=3D"http://dojotoolkit.org/book/book-dojo/part-4-meta-dojo-making-you=
r-dojo-code-run-faster-and-better/debugging-facilities/deb">Debugging=20
Tutorial</A>=20
<LI class=3Dcollapsed id=3Dmenu-item-297><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/introduction">Introduct=
ion</A>=20
<LI class=3Dcollapsed id=3Dmenu-item-324><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-1-life-dojo-0">Par=
t 1:=20
Life With Dojo</A>=20
<LI class=3Dcollapsed id=3Dmenu-item-298><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-2-dijit-0">Part =
2:=20
Dijit</A>=20
<LI class=3Dcollapsed id=3Dmenu-item-299><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dij=
it-and-dojo-0">Part=20
3: JavaScript With Dojo and Dijit</A>=20
<LI class=3Dexpanded id=3Dmenu-item-300><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-4-meta-dojo-0">Par=
t 4:=20
Testing, Tuning and Debugging</A>=20
<UL class=3Dmenu>
<LI class=3Dleaf id=3Dmenu-item-506><A=20
title=3D"Downloading Dojo using Subversion"=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-4-meta-dojo/using-=
subversion">Using=20
Subversion</A>=20
<LI class=3Dcollapsed id=3Dmenu-item-409><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-4-meta-dojo/develo=
pment-tools">Development=20
Tools</A>=20
<LI class=3Dcollapsed id=3Dmenu-item-414><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-4-meta-dojo/debugg=
ing-facilities">Debugging=20
Facilities</A>=20
<LI class=3Dleaf id=3Dmenu-item-490><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-4-meta-dojo/d-o-h-=
unit-testing">D.O.H.=20
Unit Testing</A>=20
<LI class=3Dleaf id=3Dmenu-item-420><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-4-meta-dojo/perfor=
mance-optimization">Performance=20
Optimization</A>=20
<LI class=3Dleaf id=3Dmenu-item-419><A class=3Dactive=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-4-meta-dojo/packag=
e-system-and-custom-builds">The=20
Package System and Custom Builds</A> </LI></UL>
<LI class=3Dcollapsed id=3Dmenu-item-301><A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-5-dojox-extensions=
-dojo-0">Part=20
5: DojoX</A> </LI></UL>
<LI class=3Dcollapsed id=3Dmenu-item-54><A title=3D"The Dojo Book, =
0.4"=20
href=3D"http://dojotoolkit.org/book/dojo-book-0-4">The Dojo Book, =
0.4</A>=20
</LI></UL></DIV></DIV></DIV></DIV>
<DIV class=3D"col-b content-region-container">
<DIV id=3Dmain-container><!-- main_content region -->
<H2>The Package System and Custom Builds</H2><!--Node: -->
<DIV class=3Dnode>
<DIV class=3Dsubmitted>Submitted by criecke on Wed, 06/06/2007 - =
21:40.</DIV>
<DIV class=3Dcontent>
<P>A Dojo custom build speeds performance by doing the following:</P>
<OL>
<LI>First, it groups together modules into <I>layers</I>. A layer, =
which is=20
one big .js file, loads faster than the individual .js modules that =
comprise=20
it=20
<LI>Second, it <I>interns</I> external non-JavaScript files. This is =
most=20
important for Dijit templates, which are kept in a separate HTML file. =
Interning pulls the entire file in and assigns it to a string.=20
<LI>Third, it smooshes the layer down with <A=20
href=3D"http://dojotoolkit.org/docs/shrinksafe">ShrinkSafe</A>. =
ShrinkSafe=20
removes unneeded whitepsace and comments, and compacts variable names =
down to=20
smaller ones. This file downloads and parses faster than the original. =
<LI>Finally, it copies all non-layered scripts to the appropriate =
places.=20
While this doesn't speed anything up, it ensures that all Dojo modules =
can be=20
loaded, even if not present in a layer. If you use a particular module =
only=20
once or twice, keeping it out of the layers makes those layers load =
faster.=20
</LI></OL>
<P>The catch? You have to designate the modules in each layer with a=20
<I>profile</I>, which is something like a Makefile or Ant script. But =
that's not=20
too hard if you know your app well. </P>
<P>So the input of the build system is the Dojo source tree, plus any =
source=20
trees for custom stuff you wish to include ... plus the profile. The =
output is a=20
Dojo distribution tree which you can copy to your web server. Sweet! =
</P>
<H3>Prerequisites</H3>
<P>You need the following installed on your computer to run Dojo's build =
system:</P>
<UL>
<LI><A href=3D"http://java.sun.com/">Java</A> 1.4.2 or later (Java 1.5 =
recommended).=20
<LI>A source build of Dojo, which you can obtain at <A=20
title=3Dhttp://download.dojotoolkit.org/release-1.0.0=20
=
href=3D"http://download.dojotoolkit.org/release-1.0.0">http://download.do=
jotoolkit.org/release-1.0.0</A>.=20
The source builds are suffixed with "-src". If you want to download =
the latest=20
code from the Subversion code repository, see the <A=20
=
href=3D"http://dojotoolkit.org/book/dojo-book-0-9/part-4-meta-dojo/get-co=
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -