grunt-qx
v0.1.13
Published
A grunt plugin which builds your Qooxdoo app.
Downloads
6
Readme
grunt-qx
This plugin allows you to compile your Qooxdoo app with qxcompiler, it adds ES6 compatiblity, multi app compilation and allows you to include contribs easily.
This project is a WIP / Alpha release. Expect things to be broken or getting changed.
For a minimal example see the authors tweets app.
Getting Started
This plugin requires Grunt ~1.0.1
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-qx --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-qx');
The "qx" task
Overview
In your project's Gruntfile, add a section named qx
to the data object passed into grunt.initConfig()
.
var qxpath = 'qooxdoo';
if ('QOOXDOO_PATH' in process.env) {
qxpath = process.env.QOOXDOO_PATH;
}
grunt.initConfig({
// Configuration to be run
qx: {
options: {
appPath: '.',
appClass: 'tweets.Application',
appName: 'tweets',
appTitle: 'tweets Demo',
theme: 'tweets.theme.Theme',
locales: ['en'],
libraryHints: {
'qooxdoo': qxpath + '/framework'
}
},
source: {
options: {
target: 'source',
outDir: 'build/source/',
// Only available within the 'source' target.
copyResources: true
}
},
build: {
options: {
target: 'build',
outDir: 'build/build/',
// Only available within the 'build' target.
minify: true
}
},
hybrid: {
options: {
target: 'hybrid',
outDir: 'build/hybrid/'
}
}
}
});
Options
options.appPath
Type: String
Default: '.'
Relative or absolute path to the application.
options.appClass
Type: String
Your applications class name.
options.appName
Type: String
Name of your application, will be used for ".html" and "/boot.js" in the output directory.
options.appTitle
Type: String
Title of your application - i'm not yet sure what is it for.
options.theme
Type: String
The theme of your application.
options.locales
Type: Array
Array of locales to integrate.
options.libraryDirs
Type: Array
Default: [ 'node_modules' ]
Relative or absolute paths to the libraries to include, each MUST have a "Manifest.json".
options.libraryHints
Type: Map
Map of relative or absolute paths to libraries which will overwrite options.libraryDirs
.
For example:
options: {
libaryHints: {
'qooxdoo': qxpath + '/framework'
}
}
options.minify
Type: Boolean
Default: true
Minify the result in build
targets?
options.copyResources
Type: Boolean
Default: true
Copy resources into the output directory on source
targets?
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
Release History
(Nothing yet)