+/* global module */
+
module.exports = function(grunt) {
+ 'use strict';
+
+ var build_output_dir = grunt.option('output-dir') || 'build',
+ less_files = {};
+
+ less_files[build_output_dir + '/rng.css'] = 'src/editor/styles/main.less';
grunt.initConfig({
requirejs: {
compile: {
options: {
- baseUrl: '',
- mainConfigFile: 'entrypoint.js',
- out: 'build/rng.js',
+ useStrict: true,
+ baseUrl: 'src/editor',
+ mainConfigFile: 'src/editor/entrypoint.js',
+ out: build_output_dir + '/rng.js',
name: 'entrypoint',
- include: ['libs/require']
+ include: ['libs/require'],
+ generateSourceMaps: true,
+
+ // The following two settings are required for source maps to work,
+ // see: http://requirejs.org/docs/optimization.html#sourcemaps
+ preserveLicenseComments: false,
+ optimize: grunt.option('optimize') || 'uglify2'
}
}
},
production: {
options: {
paths: [''],
- yuicompress: true
- },
- files: {
- 'build/rng.css': 'styles/main.less'
+ cleancss: true,
+ relativeUrls: true,
+ rootpath: 'src/editor/styles/'
},
+ files: less_files,
},
+ },
+ jshint: {
+ all: ['Gruntfile.js', 'src/**/*.js'],
+ options: {
+ jshintrc: '.jshintrc'
+ }
+ },
+ copy: {
+ resources: {
+ files: [
+ {src: ['libs/bootstrap/img/**'], dest: build_output_dir+'/'},
+ ]
+ }
}
});
grunt.loadNpmTasks('grunt-contrib-requirejs');
grunt.loadNpmTasks('grunt-contrib-less');
+ grunt.loadNpmTasks('grunt-contrib-jshint');
+ grunt.loadNpmTasks('grunt-contrib-copy');
- grunt.registerTask('default', ['requirejs']);
+ grunt.registerTask('build', ['requirejs', 'less:production', 'copy:resources']);
+ grunt.registerTask('lint', ['jshint']);
+ grunt.registerTask('default', ['build']);
};
\ No newline at end of file