{"id":40403033,"url":"https://github.com/cmv/cmv-app-dojo-builder","last_synced_at":"2026-01-20T13:36:16.343Z","repository":{"id":84104418,"uuid":"56618172","full_name":"cmv/cmv-app-dojo-builder","owner":"cmv","description":"Starter dojo builder project targeted for CMV","archived":false,"fork":false,"pushed_at":"2017-06-20T20:43:46.000Z","size":15209,"stargazers_count":7,"open_issues_count":0,"forks_count":7,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-04-09T16:21:23.294Z","etag":null,"topics":["arcgis-api","arcgis-js","bower","cmv","dojo","dojo-builder","esri-api","esri-javascript-api"],"latest_commit_sha":null,"homepage":"http://cmv.github.io/cmv-app-dojo-builder/dist/index.html","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cmv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-04-19T17:40:11.000Z","updated_at":"2019-04-14T07:28:55.000Z","dependencies_parsed_at":"2024-01-23T21:35:49.903Z","dependency_job_id":null,"html_url":"https://github.com/cmv/cmv-app-dojo-builder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cmv/cmv-app-dojo-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmv%2Fcmv-app-dojo-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmv%2Fcmv-app-dojo-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmv%2Fcmv-app-dojo-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmv%2Fcmv-app-dojo-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cmv","download_url":"https://codeload.github.com/cmv/cmv-app-dojo-builder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmv%2Fcmv-app-dojo-builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28603832,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T12:01:53.233Z","status":"ssl_error","status_checked_at":"2026-01-20T12:01:46.545Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arcgis-api","arcgis-js","bower","cmv","dojo","dojo-builder","esri-api","esri-javascript-api"],"created_at":"2026-01-20T13:36:16.284Z","updated_at":"2026-01-20T13:36:16.334Z","avatar_url":"https://github.com/cmv.png","language":"CSS","readme":"## CMV-App Dojo Build\n\n[![Build Status](https://travis-ci.org/cmv/cmv-app-dojo-builder.svg?branch=master)](https://travis-ci.org/cmv/cmv-app-dojo-builder)\n\n[Try The Demo](http://cmv.github.io/cmv-app-dojo-builder/dist/index.html)\n\nThis branch is the esri-jsapi resource directory setup for creating single file dojo builds. It downloads dojo, the esri api, and CMV as bower resources and can be used to create high performance dojo builds using the dojo build system. The primary benefits are:\n\n * Smaller downloads: only the modules used in an application are downloaded\n * Quicker load times: HTML and Javascript files are concatenated and optimized into single files using the closure compiler. CSS are concatenated using xstyle\n\nSee the difference! Note: the load times shown below are not observed in a production environment, and should not be used for comparison.\n\nInstead, [Try The Demo](http://cmv.github.io/cmv-app-dojo-builder/dist/index.html) for an realistic comparison.\n\nBefore:\n\n![Before Build](./before.png)\n\nAfter:\n\n![After Build](./after.png)\n\n## Requirements\n* [node \u0026 npm](https://nodejs.org/)\n* [bower](http://bower.io/)\n* [grunt](http://gruntjs.com/)\n* [java 7 or greater](https://java.com/en/download/) - for [Closure Compiler](https://github.com/google/closure-compiler) used during build\n\n## Usage\n* `npm install -g bower` - installs bower\n* `npm install -g grunt-cli` - installs global grunt\n* `npm install` - installs required node and bower packages\n* `npm run clean` - removes built files from `dist` directory\n* `npm run build-dev` - run the Dojo build on application but leave all files. Useful for debugging builds. This will result in a large folder size, although the browser *shouldn't* be requesting any extra files.\n* `npm run build` - run the Dojo build on application and run the cleanup tasks which remove all extra js and css files that aren't included in the build. If you add extra layers to the profile, the `Gruntfile.js` must be modified to account for this so these layers aren't removed!\n\n## Customizing dojo layers\n\n1. Use `build.profile.js`, `viewer.js`, and other config files to add your layers. The current setup uses one large layer, `dojo/dojo.js`.\n2. Another option is to have one main layer `dojo/dojo.js` and several others like config files that are loaded on demand.\n3. When adding layer files, both `build.profile.js` and `Gruntfile.js` clean task should be modified. Otherwise grunt will remove the file when it cleans up the build.\n\n## Limitations\n\nThe dojo build system doesn't optimize packages between layers. Lets say you have 3 modules\n\n * Module A\n * Module B\n * Module C\n\n1. Both A and B require C.\n2. We create 2 layer files A and B.\n3. Both layer files will have **their own** copy of C.\n\nMaybe we should move away from dojo and use something like [StealJS](http://stealjs.com). What do you say, Esri?\n\n##Troubleshooting\n\nInstead of running grunt `dojo-build`, instead try running `build-viewer.sh`. This will give you a detailed error log in the dist directory called `build-report.txt`. Errors begin with error(123) in the output. These errors will most likely be paths that do not resolve correctly.\n\n## Resources\n\n* [Esri JSAPI Resources](https://github.com/Esri/jsapi-resources)\n* [CMV](https://github.com/cmv/cmv-app)\n* [The Dojo Build System](https://dojotoolkit.org/reference-guide/1.10/build/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmv%2Fcmv-app-dojo-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcmv%2Fcmv-app-dojo-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmv%2Fcmv-app-dojo-builder/lists"}