Greetings. I've been assigned the challenging task of enhancing the efficiency of the Javascript build process in our application. The current setup involves using Dojo libraries and build system, which takes approximately 6 minutes for a complete build.
One of the issues at hand is that the dojo libraries, although rarely altered, are minified and rebuilt every time. While this makes sense for setting up a production environment, it becomes a cumbersome process for developers who frequently rebuild the UI on their local machines.
I have delved into the Dojo build system to find a solution. We already have certain Ant tasks that can check the status of CSS and JS files, building specific file types accordingly, but there doesn't seem to be solid support for partial builds.
I attempted to create a standalone "profile.json" file with the dojo inclusions commented out, only to encounter errors related to missing files (e.g., error: Could not locate dependency "dojo/dom"). My intention was to compile each file individually without processing dependencies unless needed for compilation into a layer.
My goal is to build dojo packages only if they have changed since the last build. Despite knowing that Dojo's build system offers extensive customization options, I haven't found a way to "include" a package in the system without compressing it. The individual "packages:" declarations appear limited in terms of customization possibilities.