Dojo is a progressive framework for modern web applications built with TypeScript.
Visit us at dojo.io for documentation, tutorials, cookbooks, and other materials. This repository contains detailed information on the structure of Dojo, while dojo.io
is focused on getting started with and learning Dojo.
There are eight sub-packages that form the framework for building a Dojo application:
dojo/core
- The foundational code of the Dojo platformdojo/has
- A feature detection librarydojo/i18n
- A set of internationalization toolingdojo/routing
- A routing service to build web applications withdojo/shim
- Modules that provide fills of ES6+ functionalitydojo/stores
- A lightweight state containerdojo/widget-core
- The foundation code of Dojo widgetsdojo/testing
- A set of modules to help with testing Dojo
We have additional packages within the Dojo ecosystem to aid in quickly and easily creating Dojo apps:
dojo/interop
- Interoperability with other frameworks (currently Dojo 1 Dijits and Redux)dojo/loader
- A TypeScript based AMD loaderdojo/themes
- Collection of Dojo themes.dojo/widgets
- A set of rich UI elements
dojo/cli
- Command Line Tooling for Dojo Applicationsdojo/cli-build-app
- A CLI command for building Dojo applicationsdojo/cli-build-widget
- A CLI command for building widgetsdojo/cli-create-app
- Command for creating application boilerplatesdojo/cli-create-theme
- Command for scaffolding a widget themedojo/cli-create-widget
- Command for creating a widget template and all associated boilerplatedojo/cli-test-intern
- Command for testing projects with Intern
There are several packages which are designed to support the Dojo platform. Generally these packages are not directly used by end developers:
dojo/dojo2-package-template
- The standard template for Dojo packages, including build and packaging templatesdojo/grunt-dojo2
- A set of Grunt tasks for use with Dojo packages.dojo/grunt-dojo2-extras
- Additional tasks and code supporting continuous delivery with Dojo packages.dojo/scripts
- A package of scripts to aid with Dojo package development.dojo/webpack-contrib
- Specialized webpack loaders and plugins used by the Dojo toolchain.dojo/web-editor
- A web editor that can run projects exported fromcli-export-project
See the v3 migration guide for details on upgrading from version 2.x to version 3.x.
We have added a repository of examples which have been built on Dojo. Those examples are available in the dojo/examples repository and are live at dojo.github.io/examples.
There are several documents that are relevant for contributing to Dojo.
- Contributing Guidelines - Guidelines for contributing code (or documentation) to Dojo
- Code Of Conduct - Guidelines for participation in all Dojo OSS communities.
- Style Guide - The style guide for Dojo for packages that do not use prettier
- tslint.json - The configuration file tslint that is used to validate Dojo code against
While Dojo tries to provide a holistic set of tools to build web applications, there are several key technologies where we feel that Dojo would be better integrating and building upon versus building from the ground up.
In order to ensure that Dojo is a solid set of JavaScript tools and libraries, Dojo is built on TypeScript. This provides us with structural design time typing as well as an effective way to communicate the intent of the Dojo APIs. It also provides us the ability to adopt ES6+ syntax features but make distributables that will be backwards compatible to the target browsers for Dojo.
© 2018 JS Foundation & contributors. New BSD license.