grunt-babel不能作为多任务工作

时间:2015-12-21 18:01:16

标签: gruntjs babeljs grunt-babel

以下配置按预期工作,但是当//build: {内容被取消注释时,它会无声地失败,或者它会对我造成意外情况。

    babel: {
        //build: {
            options: {
                sourceMap: true,
                presets: ['es2015']
            },
            dist: {
                files: [{
                    expand: true,
                    cwd: 'build/src/app',
                    src: ['**/*.js'],
                    dest: 'build/src/es5-app'
                }]
            }
        //}
    },

因此,在//build: {注释掉的情况下,es5-app目录在build/src创建,但如果//build: {未注释,则不会创建目录。在这两个实例中,grunt都以grunt babel运行,并返回Done, without errors

1 个答案:

答案 0 :(得分:1)

由于grunt-babel被注册为多任务,dist实际上是目标的名称,files位于配置的第一级。因此,当您运行没有build的babel时,它实际上正在运行babel:dist(您应该在日志中看到它)。

为了让它以您想要的方式工作,您需要以下内容:

babel: {
    options: {
        sourceMap: true,
        presets: ['es2015']
    },
    dist: {
        files: [{
            expand: true,
            cwd: 'build/src/app',
            src: ['**/*.js'],
            dest: 'build/src/es5-app'
        }]
    }
    build: {
        files: [{
            expand: true,
            cwd: 'build/src/app/test',
            src: ['test/**/*.js'],
            dest: 'build/test/es5-app'
        }]
    }
},

这将允许你运行babel:dist或babel:build。

有关多任务的详细信息,请参阅http://gruntjs.com/creating-tasks