| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 | /*global module*/module.exports = function (grunt) {    'use strict';    // The banner on top of the build    var banner = '/**\n' +        ' * Open Sheet Music Display <%= pkg.version %> built on <%= grunt.template.today("yyyy-mm-dd") %>.\n' +        ' * Copyright (c) 2016 PhonicScore\n' +        ' *\n' +        ' * https://github.com/opensheetmusicdisplay/opensheetmusicdisplay\n' +        ' */\n',        typings = [            'typings/index.d.ts',            // Additional manual typings:            'external/vexflow/vexflow.d.ts'            // 'typings/fft.d.ts'        ],    // Paths        src = ['src/**/*.ts'],        test = ['test/**/*.ts'];    // Grunt configuration following:    grunt.initConfig({        pkg: grunt.file.readJSON('package.json'),        banner: '',        // Build output directories        outputDir: {            build: 'build',            dist: 'dist'        },        // Browserify        browserify: {            dist: {                src: [].concat(typings, src),                dest: '<%= outputDir.build %>/osmd.js',                options: {                    banner: "<%= banner %>"                }            },            demo: {                src: [].concat(typings, src, ['demo/inject.ts']),                dest: '<%= outputDir.build %>/osmd-demo.js',                options: {                    banner: "<%= banner %>",                    browserifyOptions: {                        debug: true                    }                }            },            debug: {                src: [].concat(typings, src, test),                dest: '<%= outputDir.build %>/osmd-debug.js',                options: {                    banner: "<%= banner %>",                    browserifyOptions: {                        debug: true                    }                }            },            options: {                plugin: ['tsify']            }        },        // Uglify        uglify: {            options: {                compress: {                    drop_console: true                },                banner: banner,                mangle: true,                mangleProperties: true,                preserveComments: 'all'            },            bundle: {                files: {                    'build/osmd.min.js': ['build/osmd.js']                }            }        },        // Karma setup        karma: {            // For continuous integration            ci: {                configFile: 'karma.conf.js',                options: {                    browsers: ['PhantomJS']                }            },            debugWithFirefox: {                configFile: 'karma.conf.js',                options: {                    singleRun: false,                    browsers: ['Firefox']                }            },            debugWithChrome: {                configFile: 'karma.conf.js',                options: {                    singleRun: false,                    browsers: ['Chrome']                }            }        },        // TSLint setup        tslint: {            options: {                configuration: 'tslint.json'            },            all: {                src: [].concat(src, test)            }        },        // JsHint setup        jshint: {            all: [                'Gruntfile.js', 'karma.conf.js',                'submodules/**/*.json', 'submodules/**/*.js'            ]        },        // TypeScript Type Definitions        typings: {            install: {}        },        // Cleaning task setup        clean: {            options: {                force: true            },            all: {                src: [                    '<%= outputDir.build %>',                    '<%= outputDir.dist %>',                    // 'node_modules',                    // 'typings',                    '.tscache',                    'src/**/*.js', 'test/**/*.js'                ]            }        },        // http-server        'http-server': {            'demo': {                root: '.',                port: 8000,                host: '0.0.0.0',                showDir : true,                autoIndex: true,                // server default file extension                // ext: 'html',                runInBackground: false,                openBrowser : true,                // customize url to serve specific pages                customPages: {                    '/': 'demo/demo.html'                }            }        }    });    // Load Npm tasks    grunt.loadNpmTasks('grunt-karma');    grunt.loadNpmTasks('grunt-tslint');    grunt.loadNpmTasks('grunt-typings');    grunt.loadNpmTasks('grunt-browserify');    grunt.loadNpmTasks('grunt-contrib-clean');    grunt.loadNpmTasks('grunt-contrib-watch');    grunt.loadNpmTasks('grunt-contrib-jshint');    grunt.loadNpmTasks('grunt-contrib-uglify');    grunt.loadNpmTasks('grunt-http-server');    // Register tasks    grunt.registerTask('lint',      ['jshint', 'tslint']);    grunt.registerTask('start',     ['typings']);    grunt.registerTask('all',       ['typings', 'default']);    grunt.registerTask('default',   ['browserify', 'uglify']);    grunt.registerTask('npm-test',  ['typings', 'test']);    grunt.registerTask('test',      ['browserify:debug', 'lint', 'karma:ci']);    grunt.registerTask('fast-test', ['browserify:debug', 'karma:ci']);    grunt.registerTask('rebuild',   ['clean', 'default']);    grunt.registerTask('publish',   ['clean', 'typings', 'browserify:dist', 'uglify:bundle']);    grunt.registerTask('debug-build', ['browserify:demo']);    grunt.registerTask('debug-browser', ['http-server:demo']);    // Fix these in the future:    // grunt.registerTask('test debug Firefox', ['browserify:debug', 'karma:debugWithFirefox']);    // grunt.registerTask('test debug Chrome', ['browserify:debug', 'karma:debugWithChrome']);};
 |