7.0.0 • Published 3 years ago

@dojo/cli-build-theme v7.0.0

Weekly downloads
74
License
BSD-3-Clause
Repository
github
Last release
3 years ago

cli-build-theme

A @dojo/cli command for building Dojo themes that are intended for distribution.

If you are a theme author and need to distribute your theme files across multiple applications, then @dojo/cli-build-theme helps you do so. The build outputs the processed CSS modules, CSS source maps, an index.js theme module with a corresponding .d.ts, as well as any associated assets. The ouput also includes versioned index.css and index.js equivalents that are compatible with Dojo custom elements.

Note: if you are using dojo create theme within an existing application or Dojo custom element, then there is no need to use this package. As long as the theme files are within the existing build pipeline, they will be included in the build generated with @dojo/cli-build-app or @dojo/cli-build-widget;

Usage

To use @dojo/cli-build-theme in a themes project, first install @dojo/cli globally (if you have not already done so), and then install the package:

npm install --global @dojo/cli
npm install --save-dev @dojo/cli-build-theme

To build a theme, run dojo build theme from the command line, specifying the theme name as well as an optional release version.

dojo build theme --name=my-theme --release=1.2.3

If no release is specified, then the version from package.json will be used. Both name and release are aliased as n and r, respectively, so the above command can be shortened to:

dojo build theme -n my-theme -r 1.2.3

The above will create a new dist/src/my-theme directory at the project root that contains:

  • All raw .m.css files. Copying these files as-is enables composition (i.e., composes: root from 'node_modules/my-theme/my-widget')
  • An assets directory containing all fonts and images included within the theme's directory
  • An index.js file that can be imported into Dojo widgets and passed to the @theme decorator
  • An index.css file that is imported into an application's main.css
  • A {name}-{release}.js file for use with custom elements that registers the theme with a global registry and is added via a <script> tag
  • A {name}-{release}.css file for use with custom elements that is added via a <link rel="stylesheet"> tag

How do I contribute?

We appreciate your interest! Please see the Dojo Meta Repository for the Contributing Guidelines.

Licensing information

© 2018 JS Foundation. New BSD license.