grunt.js - 缩小文件时的多个目标

Mat*_*one 11 javascript node.js gruntjs

我的grunt.js有一个典型的缩小任务:

min: {
    dist: {
        src: ['dist/precook.js'],
        dest: 'dist/precook.min.js'
    }
}
Run Code Online (Sandbox Code Playgroud)

拥有多个dest文件的最简单方法是什么?我想缩小成:

  • DIST/precook.min.js
  • 例如/ JS /供应商/ precook.min.js

内置分钟的任务似乎并不支持多目的地,所以我认为这可以通过一个简单的"复制"任务来实现.有人可以指点我正确的方向吗?

jsa*_*nen 9

我会使用grunt-contrib-copy插件:

使用npm安装:

npm install grunt-contrib-copy
Run Code Online (Sandbox Code Playgroud)

修改grunt.js(添加复制任务定义和加载复制插件):

    ...
    copy: {
        dist: {
            files: {
                'example/js/vendor/': 'dist/precook.min.js'
            }
        }
    }
    ...

grunt.loadNpmTasks('grunt-contrib-copy');
Run Code Online (Sandbox Code Playgroud)

可以选择注册copy到grunt的默认任务.

这里增加的美妙之处在于您现在也可以执行所有其他复制任务.甚至支持模式,例如复制所有缩小的文件('dist/*.min.js').


Dal*_*y S 6

concat: {
            css: {
                src: ['UI.controls/assets/css/*.css'],
                dest: 'UI.controls/assets/css/min/production.css'
            },

            js: {
                src: ['UI.controls/assets/js/*.js'],
                dest: 'UI.controls/assets/js/min/production.js'
            },

            js2: {
                src: ['UI.core/assets/js/*.js'],
                dest: 'UI.core/assets/js/min/production.js'
            }

        },

        cssmin: {
            css: {
                src: 'UI.controls/assets/css/min/production.css',
                dest: 'UI.controls/assets/css/min/production.min.css'
            }
        },

        uglify: {
            js: {
                src: 'UI.controls/assets/js/min/production.js',
                dest: 'UI.controls/assets/js/min/production.min.js'
            },

            js2: {
                src: 'UI.core/assets/js/min/production.js',
                dest: 'UI.core/assets/js/min/production.min.js'
            }
        },


        watch: {
            css: {
                files: ['UI.controls/assets/css/*.css'],
                tasks: ['concat:css', 'cssmin:css']
            },
            js: {
                files: ['UI.controls/assets/js/*.js'],
                tasks: ['concat:js', 'uglify:js']
            },

            js2: {
                files: ['UI.core/assets/js/*.js'],
                tasks: ['concat:js', 'uglify:js']
            }

        }
Run Code Online (Sandbox Code Playgroud)