Skip to content
Snippets Groups Projects
Gruntfile.js 6.9 KiB
Newer Older
Carsten  Rose's avatar
Carsten Rose committed
module.exports = function (grunt) {
    var typo3_css = 'extension/Resources/Public/Css/';
    var typo3_js = 'extension/Resources/Public/JavaScript/';
    var typo3_fonts = 'extension/Resources/Public/fonts/';
Carsten  Rose's avatar
Carsten Rose committed

    // Project configuration.
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        copy: {
            bootstrap: {
                files: [
                    {
robot's avatar
robot committed
                        cwd: 'bower_components/bootstrap/dist/css/',
Carsten  Rose's avatar
Carsten Rose committed
                        src: [
robot's avatar
robot committed
                            'bootstrap.min.css',
                            'bootstrap-theme.min.css'
Carsten  Rose's avatar
Carsten Rose committed
                        ],
                        dest: typo3_css,
Carsten  Rose's avatar
Carsten Rose committed
                        filter: 'isFile',
robot's avatar
robot committed
                        expand: true,
Carsten  Rose's avatar
Carsten Rose committed
                        flatten: true
                    },
                    {
robot's avatar
robot committed
                        cwd: 'bower_components/bootstrap/dist/js/',
Carsten  Rose's avatar
Carsten Rose committed
                        src: [
robot's avatar
robot committed
                            'bootstrap.min.js'
Carsten  Rose's avatar
Carsten Rose committed
                        ],
                        dest: typo3_js,
robot's avatar
robot committed
                        expand: true,
Carsten  Rose's avatar
Carsten Rose committed
                        flatten: true
                    },
                    {
robot's avatar
robot committed
                        cwd: 'bower_components/bootstrap/dist/fonts/',
Carsten  Rose's avatar
Carsten Rose committed
                        expand: true,
                        src: [
robot's avatar
robot committed
                            '*'
Carsten  Rose's avatar
Carsten Rose committed
                        ],
                        dest: typo3_fonts,
Carsten  Rose's avatar
Carsten Rose committed
                        flatten: true
                    }
                ]
            },
            bootstrap_dev: {
                files: [
                    {
                        cwd: 'bower_components/bootstrap/dist/css/',
                        src: [
                            'bootstrap.min.css',
                            'bootstrap-theme.min.css'
                        ],
                        dest: 'css/',
                        filter: 'isFile',
                        expand: true,
                        flatten: true
                    },
                    {
                        cwd: 'bower_components/bootstrap/dist/js/',
                        src: [
                            'bootstrap.min.js'
                        ],
                        dest: 'js/',
                        expand: true,
                        flatten: true
                    },
                    {
                        cwd: 'bower_components/bootstrap/dist/fonts/',
                        expand: true,
                        src: [
                            '*'
                        ],
                        dest: 'fonts/',
                        flatten: true
                    }
                ]
            },
Carsten  Rose's avatar
Carsten Rose committed
            jquery: {
                files: [
                    {
robot's avatar
robot committed
                        cwd: 'bower_components/jquery/dist/',
Carsten  Rose's avatar
Carsten Rose committed
                        src: [
robot's avatar
robot committed
                            'jquery.min.js'
Carsten  Rose's avatar
Carsten Rose committed
                        ],
robot's avatar
robot committed
                        expand: true,
                        dest: typo3_js,
Carsten  Rose's avatar
Carsten Rose committed
                        flatten: true
                    }
                ]
            },
            jquery_devel: {
                files: [
                    {
                        cwd: 'bower_components/jquery/dist/',
                        src: [
                            'jquery.min.js'
                        ],
                        expand: true,
                        dest: "js/",
                        flatten: true
                    }
                ]
            },
Carsten  Rose's avatar
Carsten Rose committed
            jqwidgets: {
                files: [
                    {
robot's avatar
robot committed
                        cwd: 'bower_components/jqwidgets/jqwidgets/',
Carsten  Rose's avatar
Carsten Rose committed
                        src: [
robot's avatar
robot committed
                            'jqx-all.js'
Carsten  Rose's avatar
Carsten Rose committed
                        ],
robot's avatar
robot committed
                        expand: true,
                        dest: typo3_js,
Carsten  Rose's avatar
Carsten Rose committed
                        flatten: true
                    },
                    {
robot's avatar
robot committed
                        cwd: 'bower_components/jqwidgets/jqwidgets/styles/',
Carsten  Rose's avatar
Carsten Rose committed
                        src: [
robot's avatar
robot committed
                            'jqx.base.css',
                            'jqx.darkblue.css'
Carsten  Rose's avatar
Carsten Rose committed
                        ],
robot's avatar
robot committed
                        expand: true,
                        dest: typo3_css,
Carsten  Rose's avatar
Carsten Rose committed
                        flatten: true
                    },
                    {
                        cwd: 'bower_components/jqwidgets/jqwidgets/styles/',
                        src: [
                            'images/**'
                        ],
                        expand: true,
                        dest: typo3_css
Carsten  Rose's avatar
Carsten Rose committed
                    }
                ]
            },
            jqwidgets_devel: {
                files: [
                    {
                        cwd: 'bower_components/jqwidgets/jqwidgets/',
                        src: [
                            'jqx-all.js'
                        ],
                        expand: true,
                        dest: 'js/',
                        flatten: true
                    },
                    {
                        cwd: 'bower_components/jqwidgets/jqwidgets/styles/',
                        src: [
                            'jqx.base.css',
                            'jqx.darkblue.css'
                        ],
                        expand: true,
                        dest: 'css/',
                        flatten: true
                    },
                    {
                        cwd: 'bower_components/jqwidgets/jqwidgets/styles/',
                        src: [
                            'images/**'
                        ],
                        expand: true,
                        dest: 'css/'
                    }
                ]
Carsten  Rose's avatar
Carsten Rose committed
            }
        },
        uglify: {
            options: {
                banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
            },
            build: {
                src: ['js/<%= pkg.name %>.debug.js'],
                dest: typo3_js + '<%= pkg.name %>.min.js'
            }
        },
        jshint: {
            all: [
                'javascript/src/*.js'
            ]
        },
        concat: {
            debug: {
                src: [
                    'javascript/src/Helper/*.js',
                    'javascript/src/*.js'
                ],
                dest: 'js/<%= pkg.name %>.debug.js'
            }
        },
        watch: {
            scripts: {
                files: [
                    'javascript/src/*.js',
                    'javascript/src/Helper/*.js'
                ],
                tasks: [ 'default' ],
                options: {
                    spawn: true
                }
            }
Carsten  Rose's avatar
Carsten Rose committed
        }
Carsten  Rose's avatar
Carsten Rose committed
    });

    // Load the plugin that provides the "uglify" task.
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-copy');
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-contrib-watch');
Carsten  Rose's avatar
Carsten Rose committed

    // Default task(s).
    grunt.registerTask('default', ['jshint', 'concat', 'uglify', 'copy']);
Carsten  Rose's avatar
Carsten Rose committed

};