source: Dev/trunk/src/client/util/build/buildControlDefault.js @ 529

Last change on this file since 529 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 8.4 KB
Line 
1define([
2        "./buildControlBase"
3], function(bc){
4        var defaultBc = {
5                // v1.6- default values
6                internStrings:true,
7                internSkipList:[],
8                optimize:"",
9                layerOptimize:"shrinksafe",
10                useSourceMaps:1,
11                cssOptimize:"",
12                cssImportIgnore:"",
13                stripConsole:"normal",
14                scopeMap:[],
15                insertAbsMids:1,
16                applyDojoPragmas:1,
17                localeList:"ar,ca,cs,da,de,el,en-gb,en-us,es-es,fi-fi,fr-fr,he-il,hu,it-it,ja-jp,ko-kr,nl-nl,nb,pl,pt-br,pt-pt,ru,sk,sl,sv,th,tr,zh-tw,zh-cn".split(","),
18
19
20                // this is a dojo pragma
21                replaceLoaderConfig:1,
22
23                defaultConfig:{
24                        hasCache:{
25                                // these are the values given above, not-built client code may test for these so they need to be available
26                                'dojo-built':1,
27                                'dojo-loader':1,
28                                'dom':1,
29                                'host-browser':1,
30                                "config-tlmSiblingOfDojo":1,
31
32                                // default
33                                "config-selectorEngine":"acme"
34                        },
35                        async:0
36                },
37
38                files:[],
39                dirs:[],
40                trees:[],
41                replacements:{},
42
43                staticHasFeatures:{
44                        // consider turning these hard on for standard 1.x build
45                        //'config-publishRequireResult':1,
46                        //'config-tlmSiblingOfDojo':1,
47
48                        'extend-dojo':1,
49                        'dojo-amd-factory-scan':0,
50                        'dojo-built':1,
51                        'dojo-combo-api':0,
52                        'dojo-log-api':1,
53                        'dojo-test-sniff':0,// must be turned on for several tests to work
54                        'dojo-config-addOnLoad':1,
55                        'dojo-config-api':1,
56                        'dojo-config-require':1,
57                        'dojo-dom-ready-api':1,
58                        'dojo-guarantee-console':1,
59                        'dojo-has-api':1,
60                        'dojo-inject-api':1,
61                        'dojo-loader':1,
62                        'dojo-modulePaths':1,
63                        'dojo-moduleUrl':1,
64                        'dojo-publish-privates':0,
65                        'dojo-requirejs-api':0,
66                        'dojo-sniff':1,
67                        'dojo-sync-loader':1,
68                        'dojo-timeout-api':1,
69                        'dojo-trace-api':0,
70                        'dojo-undef-api':0,
71                        'dojo-v1x-i18n-Api':1,
72                        'dojo-xhr-factory':1,
73                        "dojo-fast-sync-require":1,
74                        'config-deferredInstrumentation':1,
75                        'dom':1,
76                        'host-browser':1,
77                        'host-node':0,
78                        'host-rhino':0
79                },
80
81                discoveryProcs:["build/discover"],
82
83                plugins:{
84                        "dojo/text":"build/plugins/text",
85                        "dojo/i18n":"build/plugins/i18n",
86                        "dojo/has":"build/plugins/has",
87                        "dojo/domReady":"build/plugins/domReady",
88                        "dojo/loadInit":"build/plugins/loadInit",
89                        "dojo/require":"build/plugins/require",
90                        "dojo/selector/_loader":"build/plugins/querySelector"
91                },
92
93                gates:[
94                        // [synchronized?, gate-name, gate-message]
95                        [0, "read", "reading resources"],
96                        [0, "text", "processing raw resource content"],
97                        [0, "tokenize", "tokenizing resource"],
98                        [0, "tokens", "processing resource tokens"],
99                        [0, "parse", "parsing resource"],
100                        [1, "ast", "processing resource AST"],
101                        [1, "optimize", "executing global optimizations"],
102                        [1, "write", "writing resources"],
103                        [1, "cleanup", "cleaning up"],
104                        [1, "report", "reporting"]
105                ],
106
107                transformConfig: {},
108
109                transforms:{
110                        trace:                          ["build/transforms/trace", "read"],
111                        read:                           ["build/transforms/read", "read"],
112                        dojoPragmas:            ["build/transforms/dojoPragmas", "read"],
113                        insertSymbols:          ["build/transforms/insertSymbols", "read"],
114                        depsDeclarative:        ["build/transforms/depsDeclarative", "read"],
115                        depsScan:                       ["build/transforms/depsScan", "ast"],
116                        hasFixup:                       ["build/transforms/hasFixup", "ast"],
117                        write:                          ["build/transforms/write", "write"],
118                        writeAmd:                       ["build/transforms/writeAmd", "write"],
119                        writeOptimized:         ["build/transforms/writeOptimized", "write"],
120                        copy:                           ["build/transforms/copy", "write"],
121                        writeDojo:                      ["build/transforms/writeDojo", "write"],
122                        optimizeCss:            ["build/transforms/optimizeCss", "optimize"],
123                        writeCss:                       ["build/transforms/writeCss", "write"],
124                        hasFindAll:                     ["build/transforms/hasFindAll", "read"],
125                        hasReport:                      ["build/transforms/hasReport", "cleanup"],
126                        depsDump:                       ["build/transforms/depsDump", "cleanup"],
127                        dojoReport:                     ["build/transforms/dojoReport", "report"],
128                        report:                         ["build/transforms/report", "report"]
129                },
130
131                transformJobs:[[
132                                // immediately filter the stuff to not be transformed in any way
133                                function(resource, bc){
134                                        return(bc.mini && resource.tag.miniExclude) || (!bc.copyTests && resource.tag.test) || (resource.tag.ignore);
135                                },
136                                []
137                        ],[
138                                // if the tag says just copy, then just copy
139                                function(resource, bc){
140                                        return resource.tag.copyOnly;
141                                },
142                                ["copy"]
143                        ],[
144                                // the synthetic report module
145                                function(resource, bc){
146                                        return resource.tag.report;
147                                },
148                                ["dojoReport", "insertSymbols", "report"]
149                        ],[
150                                // dojo.js, the loader
151                                function(resource, bc){
152                                        if(resource.mid=="dojo/dojo"){
153                                                bc.loader = resource;
154                                                resource.boots = [];
155                                                // the loader is treated as an AMD module when creating the "dojo" layer, but and AMD dependency scan won't
156                                                // work because it's not an AMD module; therefore, initialize deps here and make sure not to do the depsScan transform
157                                                resource.deps = [];
158                                                bc.amdResources[resource.mid] = resource;
159                                                return true;
160                                        }
161                                        return false;
162                                },
163                                ["read", "dojoPragmas", "hasFindAll", "hasFixup", "writeDojo", "writeOptimized"]
164                        ],[
165                                // package has module
166                                function(resource, bc){
167                                        if(/^\w+\/has$/.test(resource.mid)){
168                                                bc.amdResources[resource.mid] = resource;
169                                                return true;
170                                        }
171                                        return false;
172                                },
173                                ["read", "dojoPragmas", "hasFindAll", "hasFixup", "depsScan", "writeAmd", "writeOptimized", "hasReport", "depsDump"]
174                        ],[
175                                // flattened nls bundles
176                                function(resource, bc){
177                                        return !!resource.tag.flattenedNlsBundle;
178                                },
179                                ["writeAmd", "writeOptimized"]
180                        ],[
181                                // nls resources
182                                function(resource, bc){
183                                        if((/\/nls\//.test(resource.mid) || /\/nls\/.+\.js$/.test(resource.src)) && ((!resource.tag.test || bc.copyTests=="build"))){
184                                                resource.tag.nls = 1;
185                                                bc.amdResources[resource.mid] = resource;
186                                                return true;
187                                        }
188                                        return false;
189                                },
190                                ["read", "dojoPragmas", "hasFindAll", "hasFixup", "depsScan", "writeAmd", "writeOptimized"]
191                        ],[
192                                // synthetic AMD modules (used to create layers on-the-fly
193                                function(resource, bc){
194                                        if(resource.tag.synthetic && resource.tag.amd){
195                                                bc.amdResources[resource.mid] = resource;
196                                                return true;
197                                        }
198                                        return false;
199                                },
200                                // just like regular AMD modules, but without a bunch of unneeded transforms
201                                ["depsScan", "writeAmd", "writeOptimized"]
202                        ],[
203                                // synthetic dojo/loadInit! resources
204                                // FIXME: can't this be added to the previous transform?
205                                function(resource, bc){
206                                        if(resource.tag.loadInitResource){
207                                                bc.amdResources[resource.mid] = resource;
208                                                return true;
209                                        }
210                                        return false;
211                                },
212                                // just like regular AMD modules (the next transform job), but without a bunch of unneeded transforms
213                                ["writeAmd", "writeOptimized"]
214                        ],[
215                                // AMD module:
216                                // already marked as an amd resource
217                                // ...or...
218                                // not dojo/dojo.js (filtered above), not package has module (filtered above), not nls bundle (filtered above), not test or building test, not build control script or profile script but still a Javascript resource...
219                                function(resource, bc){
220                                        if(resource.tag.amd || (/\.js$/.test(resource.src) && (!resource.tag.test || bc.copyTests=="build") && !/\.(bcs|profile)\.js$/.test(resource.src))){
221                                                bc.amdResources[resource.mid] = resource;
222                                                return true;
223                                        }
224                                        return false;
225                                },
226                                ["read", "dojoPragmas", "hasFindAll", "insertSymbols", "hasFixup", "depsScan", "writeAmd", "writeOptimized"]
227                        ],[
228                                // Declarative Resource:
229                                // This resource (usually HTML) should be scanned for declarative dependencies and copied.
230                                function(resource, bc){
231                                        return resource.tag.declarative;
232                                },
233                                ["read", "dojoPragmas", "depsDeclarative", "write"]
234                        ],[
235                                // a test resource; if !bc.copyTests then the resource was filtered in the first item; otherwise, if the resource is a potential module and building tests, then it was filtered above;
236                                function(resource, bc){
237                                        return resource.tag.test;
238                                },
239                                ["read", "dojoPragmas", "write"]
240                        ],[
241                                // html file; may need access contents for template interning and/or dojoPragmas; therefore, can't use copy transform
242                                function(resource, bc){
243                                        return /\.(html|htm)$/.test(resource.src);
244                                },
245                                ["read", "dojoPragmas", "write"]
246                        ],[
247                                // css that are designated to compact
248                                function(resource, bc){
249                                        return /\.css$/.test(resource.src);
250                                },
251                                ["read", "optimizeCss", "write"]
252                        ],[
253                                // just copy everything else except tests which were copied above iff desired...
254                                function(resource, bc){
255                                        return !resource.tag.test;
256                                },
257                                ["copy"]
258                        ]
259                ]
260        };
261        for(var p in defaultBc){
262                bc[p] = defaultBc[p];
263        }
264        return bc;
265});
Note: See TracBrowser for help on using the repository browser.