Hawk/Gruntfile.js

104 lines
2.5 KiB
JavaScript
Raw Normal View History

2015-08-29 19:19:16 +00:00
module.exports = function(grunt) {
require('grunt-task-loader')(grunt);
2015-08-29 19:19:16 +00:00
grunt.initConfig({
browserify: {
dev: {
files: {
'build/main.js': ['src/js/**/*', '!src/js/libs/**']
},
options: {
alias: {
store: './src/js/store.js'
},
transform: [['babelify', {
optional: ['es7.asyncFunctions', 'asyncToGenerator',
'es7.decorators'],
blacklist: []
}]],
plugin: [
[
'remapify', [
{
src: '**/*.js',
expose: 'components',
cwd: __dirname + '/src/js/components/'
},
{
src: '**/*.js',
expose: 'actions',
cwd: __dirname + '/src/js/actions'
},
{
src: '**/*.js',
expose: 'reducers',
cwd: __dirname + '/src/js/reducers'
},
{
src: '**/*.js',
expose: 'api',
cwd: __dirname + '/src/js/api'
}
]
]
]
}
},
prod: {
files: {
'build/main.js': 'src/js/**/*'
},
options: {
transform: ['babelify', 'uglifyify']
}
}
},
2015-08-29 19:19:16 +00:00
less: {
dev: {
2015-08-29 19:19:16 +00:00
files: [{
src: 'less/main.less',
dest: 'style.css'
}]
},
prod: {
2015-08-29 19:19:16 +00:00
options: {
plugins: require('less-plugin-clean-css')()
},
files: [{
src: 'less/main.less',
dest: 'style.css'
}]
}
},
copy: {
assets: {
files: [{
expand: true,
cwd: 'src',
dest: 'build',
src: ['index.html', 'manifest.webapp',
'fonts/**', 'img/**', 'js/libs/**']
}]
}
},
2015-08-29 19:19:16 +00:00
watch: {
styles: {
files: ['src/less/**/*.less'],
tasks: ['less:dev']
},
scripts: {
files: ['src/js/**/*'],
tasks: ['browserify:dev']
},
assets: {
files: ['src/index.html', 'src/manifest.webapp',
'src/fonts/**', 'src/img/**', 'src/data/**'],
tasks: ['copy']
2015-08-29 19:19:16 +00:00
}
}
});
grunt.registerTask('default', ['browserify:dev', 'less:dev', 'copy']);
grunt.registerTask('production', ['browserify:prod', 'less:prod', 'copy']);
2015-08-29 19:19:16 +00:00
};