0

以下配置按预期工作,但是当//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

4

1 回答 1

1

由于 grunt-babel 注册为多任务,dist实际上是目标的名称,files位于配置的第一级。因此,当您在没有 的情况下运行 babel 时build,它实际上正在运行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

于 2016-01-28T19:29:40.703 回答