| module.exports = function(grunt) { |
| |
| // Project configuration. |
| grunt.initConfig({ |
| pkg: grunt.file.readJSON('package.json'), |
| // Install all the packages listed in the bower.json file. |
| shell: { |
| bower_install: { |
| command: 'bower install' |
| } |
| }, |
| // Copy all the bower files into a single directory. |
| bower: { |
| dev: { |
| dest: '../../../out/grunt/third_party' |
| } |
| }, |
| // Concatenate all the files in third_party into a single file. |
| concat: { |
| dist: { |
| src: [ |
| '../../../out/grunt/third_party/WeakMap.js', |
| '../../../out/grunt/third_party/classlist.js', |
| '../../../out/grunt/third_party/pointerevents-polyfill.js', |
| '../../../out/grunt/third_party/MutationObserver.js', |
| '../../../out/grunt/third_party/CustomElements.js', |
| '../../../out/grunt/third_party/HTMLImports.js', |
| ], |
| dest: '../../../out/grunt/src/<%= pkg.name %>.js' |
| } |
| }, |
| // Uglify the one big file into one smaller file. |
| uglify: { |
| options: { |
| banner: '/*! <%= pkg.name %> built from /exerimental/webtry/poly <%= grunt.template.today("yyyy-mm-dd") %> */\n' |
| }, |
| build: { |
| src: '../../../out/grunt/src/<%= pkg.name %>.js', |
| dest: '../res/js/<%= pkg.name %>.js' |
| } |
| }, |
| copy: { |
| simple: { |
| src: '../../../out/grunt/src/<%= pkg.name %>.js', |
| dest: '../res/js/<%= pkg.name %>.js' |
| } |
| } |
| }); |
| |
| // Load the plugins for the above commands. |
| grunt.loadNpmTasks('grunt-bower'); |
| grunt.loadNpmTasks('grunt-contrib-concat'); |
| grunt.loadNpmTasks('grunt-contrib-copy'); |
| grunt.loadNpmTasks('grunt-contrib-cssmin'); |
| grunt.loadNpmTasks('grunt-contrib-uglify'); |
| grunt.loadNpmTasks('grunt-shell'); |
| |
| // By default run all the commands in the right sequence to build our custom minified polyfill. |
| grunt.registerTask('default', ['shell:bower_install', 'bower', 'concat', 'uglify']); |
| |
| // A target to build an unminified version, for debugging. |
| grunt.registerTask('notmin', ['shell:bower_install', 'bower', 'concat', 'copy:simple']); |
| |
| }; |