mirror of
https://github.com/publiclab/image-sequencer.git
synced 2025-12-05 16:00:01 +01:00
* Split tests into separate Travis jobs with better labeling * format test browserification * more descriptive labels * combine grunt browserify of tests and the run of those tests
107 lines
3.0 KiB
JavaScript
107 lines
3.0 KiB
JavaScript
module.exports = function(grunt) {
|
|
grunt.loadNpmTasks('grunt-browserify');
|
|
grunt.loadNpmTasks('grunt-contrib-uglify-es');
|
|
grunt.loadNpmTasks('grunt-browser-sync');
|
|
grunt.loadNpmTasks('grunt-text-replace');
|
|
|
|
require('matchdep')
|
|
.filterDev('grunt-*')
|
|
.forEach(grunt.loadNpmTasks);
|
|
|
|
grunt.initConfig({
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
|
|
watch: {
|
|
options: {
|
|
livereload: true
|
|
},
|
|
source: {
|
|
files: ['src/**/*', 'Gruntfile.js', 'examples/lib/*', 'examples/demo.js'],
|
|
tasks: ['compile']
|
|
}
|
|
},
|
|
|
|
browserify: {
|
|
options: {
|
|
alias: {
|
|
'gpu.js': './node_modules/gpu.js/src/index.js'
|
|
}
|
|
},
|
|
core: {
|
|
src: ['src/ImageSequencer.js'],
|
|
dest: 'dist/image-sequencer.js'
|
|
},
|
|
ui: {
|
|
src: ['examples/demo.js'],
|
|
dest: 'dist/image-sequencer-ui.js'
|
|
},
|
|
prodcore: {
|
|
src: ['src/ImageSequencer.js'],
|
|
dest: 'dist/image-sequencer.brow.js'
|
|
},
|
|
produi: {
|
|
src: ['examples/demo.js'],
|
|
dest: 'dist/image-sequencer-ui.brow.js'
|
|
},
|
|
tests: {
|
|
src: ['test/core/sequencer/meta-modules.js',
|
|
'test/core/sequencer/image-sequencer.js',
|
|
'test/core/sequencer/chain.js',
|
|
'test/core/sequencer/replace.js',
|
|
'test/core/sequencer/import-export.js',
|
|
'test/core/sequencer/run.js',
|
|
'test/core/sequencer/dynamic-imports.js',
|
|
'test/core/util/*.js'],
|
|
dest: './output/core-tests.js'
|
|
}
|
|
},
|
|
|
|
replace: {
|
|
version: {
|
|
src: ['examples/sw.js'],
|
|
overwrite: true,
|
|
replacements: [{
|
|
from: /image-sequencer-static-v.*/g,
|
|
to: "image-sequencer-static-v<%= pkg.version %>';"
|
|
}]
|
|
}
|
|
},
|
|
|
|
uglify: {
|
|
core: {
|
|
src: ['./dist/image-sequencer.js'],
|
|
dest: './dist/image-sequencer.min.js'
|
|
},
|
|
ui: {
|
|
src: ['dist/image-sequencer-ui.js'],
|
|
dest: 'dist/image-sequencer-ui.min.js'
|
|
},
|
|
prodcore: {
|
|
src: ['dist/image-sequencer.brow.js'],
|
|
dest: 'dist/image-sequencer.js'
|
|
},
|
|
produi: {
|
|
src: ['dist/image-sequencer-ui.brow.js'],
|
|
dest: 'dist/image-sequencer-ui.js'
|
|
}
|
|
},
|
|
browserSync: {
|
|
dev: {
|
|
options: {
|
|
watchTask: true,
|
|
server: './'
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
/* Default (development): Watch files and build on change. */
|
|
grunt.registerTask('default', ['watch']);
|
|
grunt.registerTask('build', ['browserify:core', 'browserify:ui', 'replace:version', 'uglify:core', 'uglify:ui']);
|
|
grunt.registerTask('serve', ['browserify:core', 'browserify:ui', 'replace:version', 'browserSync', 'watch']);
|
|
grunt.registerTask('compile', ['browserify:core', 'browserify:ui']);
|
|
grunt.registerTask('production', ['browserify:prodcore', 'browserify:produi', 'replace:version', 'uglify:prodcore', 'uglify:produi']);
|
|
|
|
grunt.registerTask('tests', ['browserify:tests']);
|
|
};
|