JavaScript — Uglify JS-файлы, используя Grunt

Uglify JS файлы с помощью Grunt

Я использую Grunt для удаления всех файлов JS.

Но у меня есть вопрос, можно ли пропустить удаление файлов js с каким-то конкретным условием.

Например, у меня есть 2 промежуточные среды для тестирования. Я не хочу, чтобы мои js-файлы были безобразны для этих двух промежуточных сред. Что касается производства, файлы js должны быть безобразны.

Есть ли способ добиться этого с помощью Grunt? Я пытался найти решение. Но везения нет.

clean: {
        build:[
            "target"
        ],
        postbuild:['target/js/{amp}lt;%= pkg.name %{amp}gt;.js', 'target/js/lib', 'target/src/js']
    },

    concat: {
        options: {
            separator: ';'
        },
        target: {
            src: ['src/js/app/**/*.js'],
            dest: 'target/js/{amp}lt;%= pkg.name %{amp}gt;.js'
        }
    },

    jshint: {
        files: ['Gruntfile.js', 'src/js/app/**/*.js', 'test/unit/**/*.js'],
        options: {
            // options here to override JSHint defaults
            globals: {
                jQuery: true,
                console: true,
                module: true,
                document: true
            }
        }
    },
    useref: {
        // specify which files contain the build blocks
        html: 'target/*.html',
        // explicitly specify the temp directory you are working in
        // this is the the base of your links ( '/' )
        temp: 'target'
    },

    copy: {
        main:{
            files: [
                {expand: true, cwd: 'css/', src: ['**/*.*'], dest: 'target/css'},
                {expand: true, cwd: 'css/fonts', src: ['**/*.*'], dest: 'target/css/fonts'},

                {expand: true, flatten: true, cwd: 'images/', src: ['**'], dest: 'target/images'},

                {expand: true, cwd: 'js/lib', src: ['**/*.js'], dest: 'target/js/lib'},
                {expand: true, cwd: 'src/js/app', src: ['**/*.js'], dest: 'target/src/js/app'},

                {expand: true, cwd: 'templates', src: ['**/*.*'], dest: 'target/templates'},                
                {expand: true, cwd: '', src: ['index.html', 'appindex.html'], dest: 'target'},
                {expand: true, cwd: 'properties', src: ['**/*','!**/eenavigation/**'], dest: 'target/properties'}
            ],

            options: {
                files: ['package.json'], // list of files to add build info
                buildField: 'buildInfo' // add a 'buildInfo' element to the package.json containing the build info
            }
        },

        postBuildTraining: {
            files:[

            //  copy training folder for training environment alone
                {expand: true, cwd: 'training', src: ['**/*.*'], dest: 'target/training'},
                {expand: true, cwd: 'traininghtml', src: ['**/*.*'], dest: 'target/traininghtml'}
            ]
        },
        postBuild: {
            files:[

                //  Copy IE specific files. These are already minified
                {expand: true, cwd: 'js/lib', src: ['html5shiv.min.js', 'respond.min.js'], dest: 'target/js/lib'},

                //  jQuery is imported within the Thistle redirect HTML, so we need to provide a copy for successful import
                {expand: true, cwd: 'js/lib/jquery', src: ['jquery-1.*.js'], dest: 'target/js/lib/jquery'},

                //  Copy the lib.js JavaScript file so that it is accessible from the redirect files
                {expand: true, cwd: 'js/lib', src: ['lib.js'], dest: 'target/js/lib/'}

            ]
        }
   },

    uglify: {
        options: {
            // the banner is inserted at the top of the output
            banner: '/*! {amp}lt;%= grunt.template.today("dd-mm-yyyy HH:MM:ss") %{amp}gt; */n'
        }
    },

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector