Dojo build profile no Dojo layer (> 1.7)

I have a dojo build profile that creates a layer with two layers - one dojo / dojo layer and another layer for my application files.

All this works fine and leads to two "large" files (main.js and dojo.js), which contains all the necessary codes.

However, I do not want to constantly create a "dojo / dojo" layer when creating the application, it takes a lot of time (> 100 seconds), and since this level does not change much, I do not want to continue to build it.

The problem is that even with one β€œapp / main” layer, the assembly still creates all the dojo / dijit / dojox files and still takes a lot of time (I know that I do not need these files but it still parses / optimizes / compresses ... all of these files).

Anyway, to avoid this? I just need a simple little build just for my application files.

here is my profile:

var profile = (function () { var dojoDeps = ['dojo/dom', 'dojo/i18n', 'dojo/domReady', 'dojo/parser']; var dojoxDeps = ['dojox/grid/DataGrid', 'dojox/data/JsonRestStore']; var dijitDeps = ['dijit/form/Form', 'dijit/form/ValidationTextBox', 'dijit/form/Button', 'dijit/layout/BorderContainer']; var allDojoDeps = [].concat(dojoDeps, dojoxDeps, dijitDeps); var appDeps = ['app/main', 'app/run']; return { basePath: '../../../../dojo/dojo-src', releaseDir: "../../target/dojo-compiled", releaseName: "", action: 'release', cssOptimize: 'comments', mini: true, optimize: 'closure', layerOptimize: 'closure', stripConsole: 'normal', selectorEngine: 'lite', layers: { 'dojo/dojo': { include: allDojoDeps, boot: true }, 'app/main': { include: appDeps, exclude: allDojoDeps } }, staticHasFeatures: { 'dojo-trace-api': 0, 'dojo-log-api': 0, 'dojo-publish-privates': 0, 'dojo-sync-loader': 0, 'dojo-test-sniff': 0 }, packages: [ { name: "dojo", location: "dojo" }, { name: "dijit", location: "dijit" }, { name: "dojox", location: "dojox" }, { name: "app", depsScan:false, location: "../../src/main/webapp/app" } ] }; })(); Packages.com.google.javascript.jscomp.Compiler.setLoggingLevel(Packages.java.util.logging.Level.WARNING); 
+4
source share
1 answer

optimize: "closure" will cause the optimizer to run for all files in the release. the layerOptimize option is what controls the optimization for layers, so you can set optimize: "" to stop optimizing files without a layer, and you should find that your build is much faster.

0
source

All Articles