This repository contains information regarding Dojo (versions 2 and newer) that crosses package boundaries.
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 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.
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.
TypeScript and Dojo both iterate rapidly. In general Dojo strives for maximum compatibility, with a plan to periodically increase the minimum TypeScript version so we can begin relying on newer TypeScript features. Please review this list when using Dojo:
Dojo version | TypeScript version (minimum) | TypeScript version (maximum) |
---|---|---|
2.0 | 2.6.x | 2.6.x |
3.0 | 2.6.x | 2.6.x |
4.0 | 2.6.x | 3.1.x |
There are several packages that makeup the Dojo platform:
dojo/framework
- Progressive framework for Modern Web apps including a virtual DOM system for widgets, reactive architecture, feature detection, routing, internationalization tooling, shims, lightweight state container, a set of testing modules, and more.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
dojo/interop
- Interoperability with other frameworks (currently Dojo 1 Dijits and Redux)dojo/themes
- Collection of Dojo themes.dojo/widgets
- A set of rich UI elements
We have some other packages which are not actively used by Dojo or still in their planning stages:
dojo/crypto
- A set of libraries to deal with cryptographydojo/dataviz
- A data visualization library for Dojodojo/dgrid
- Reactive extensive grid for Dojo (We encourage looking at@dojo/widgets/grid
dojo/loader
- A TypeScript based AMD loaderdojo/streams
- WHATWG Streams implementation
We have some deprecated packages:
dojo/actions
- A command like library for Dojo applications - This is deprecated because we have not found this abstraction to add valuedojo/app
- An application framework for Dojo - This is deprecated because widgets routing stores are sufficient to deal with higher order application concernsdojo/cli-build-webpack
- A legacy application and widget build command - *This is deprecated as it has been superseded by@dojo/cli-build-app
and@dojo/cli-build-widget
*dojo/compose
- A mixin/trait based composition library - This is deprecated because TypeScript now offers mixin behaviordojo/dom
- A set of APIs for manipulating the DOM - This is deprecated because Dojo fully abstracts away DOM access.dojo/interfaces
- Common interfaces and types for Dojo - This has been deprecated as interfaces now live in their respective repositoriesdojo/parser
- A HTML document parser for instantiating objects declaratively - This is deprecated in lieu of functionality provided using Custom Elements from@dojo/widget-core
.
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 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.
There are additional packages which are not actively used:
dojo/diagnostics
- A set of modules that can be used to instrument Dojo 2 applications to provide additional diagnostic information.dojo/devtool
- A devtool extension for Chrome and Firefox that provides an interface to thedojo/diagnostics
information.dojo/test-extras
- A set of modules to help with testing Dojo (relevant features moved into@dojo/framework
)dojo/web-editor
- A web editor that can run projects exported fromcli-export-project
. Today we recommend using the Dojo template on CodeSandbox.
The following tables contain status information for the packages:
Package | CI Status | Code Coverage | npm | Stage |
---|---|---|---|---|
dojo/cli | 4.0 | |||
dojo/framework | 4.0 | |||
dojo/interop | 4.0 | |||
dojo/themes | 4.0 | |||
dojo/widgets | 4.0 |
The dojo/cli
will provide extensible functionality via a variety of packages that can be plugged
into the CLI.
Package | CI Status | Code Coverage | npm | Stage |
---|---|---|---|---|
dojo/cli-build-app | 4.0 | |||
dojo/cli-build-widget | 4.0 | |||
dojo/cli-create-app | 4.0 | |||
dojo/cli-create-theme | 4.0 | |||
dojo/cli-create-widget | 4.0 | |||
dojo/cli-export-project | Alpha | |||
dojo/cli-test-intern | 4.0 |
These are packages which provide extended functionality, usually to other tools, which are used by Dojo. For those using the out of the box tooling, there is little value in these packages, but for those having to integrate Dojo into an existing development pipeline, these packages are likely to be of use.
Package | CI Status | Code Coverage | npm | Stage |
---|---|---|---|---|
dojo/devtool | Alpha | |||
dojo/diagnostics | Alpha |
In addition to dojo/cli
there are some packages which are designed to be used both by the Dojo team internally, but also
others who are developing Dojo applications:
Package | CI Status | Code Coverage | npm | Stage |
---|---|---|---|---|
dojo/grunt-dojo2 | 4.0 | |||
dojo/grunt-dojo2-extras | 4.0 | |||
dojo/scripts | 3.1 | |||
dojo/webpack-contrib | 4.0 |
Package | CI Status | Code Coverage |
---|---|---|
dojo/examples |
Package | CI Status | Code Coverage | npm |
---|---|---|---|
dojo/actions | |||
dojo/app | |||
dojo/cli-build-webpack | |||
dojo/cli-css-typings | |||
dojo/compose | |||
dojo/crypto | |||
dojo/dataviz | |||
dojo/dgrid | |||
dojo/dom | |||
dojo/interfaces | |||
dojo/loader | |||
dojo/parser | |||
dojo/streams | |||
dojo/test-extras | |||
dojo/web-editor |
© 2019 JS Foundation & contributors. New BSD license.