Grunt 任务:动态源文件夹和动态输出文件夹取决于源位置

Grunt task: Dynamic source folders & dynamic ouput folders dependant on source location

我的项目有 "Scripts" 个文件夹,其中有很多包含 javascript 个文件的子文件夹。

目前我正在将 babel 集成为一项繁重的任务。所有需要转译的文件都有名称“*.babel.js”,所以在我的监视对象中我有这样的任务:

babel: {
    files: 'Content/styles/**/*.babel.js',
    tasks: [
        'babel'
    ]
},

我的 babel 任务选项对象是:

"babel": { options: { sourceMap: true }, dist: { files: { "dist/app.js": "src/app.js" } } }

请注意加粗部分。是否可以select所有名为“*.babel.js”的文件并将编译后的文件与源文件放在同一文件夹中?

我在这里要做的是避免将每个 *.babel.js 定义到配置对象,因为有很多文件,而且还会有更多... + 我所有的文件位于脚本子文件夹的不同级别。

这可能吗?

解决了,babel对象:

{
    options: {
        sourceMap: true
    },
    dist: {
        files: [
            {
                "expand": true,
                "cwd": "Scripts/",
                "src": ["**/*.babel.js"],
                "dest": "Scripts/",
                "ext": ".js"
            }
        ]
    }
}

这会将脚本文件编译到源文件所在的同一文件夹中。