具有相对目标的 Grunt 动态文件映射

Grunt Dynamic file mapping with relative destination

我觉得这应该很容易,但我正在让它变得比它应该的更难,但是我正在尝试使用 grunt uglify 从与其源文件相关的多个文件夹中创建缩小的 js 文件。例如:

uglify: {
  modules: {
    files: [{
      expand: true,
      cwd: "<%= modules %>",
      src: "**/js/*.js",
      dest: "same folder as source file", <-- this is the part I don't know
      ext: ".min.js",
      extDot: "first"
    }]
  }
}

原始目录结构:

- Modules/
-- Module 1/
--- js/
---- module1script.js
-- Module 2/
--- js/
---- module2script.js

文件缩小后:

- Modules/
-- Module 1/
--- js/
---- module1script.js
---- module1script.min.js
-- Module 2/
--- js/
---- module2script.js
---- module2script.min.js

无需为每个模块文件夹编写任务,因为模块依赖于项目并且经常更改。

dest 选项留空将在相对源路径中输出缩小的文件。

uglify 任务的 grunt 配置为

uglify: {
        modules: {
            files: [{
                expand: true,
                src: "Modules/**/js/*.js",
                dest: "",
                ext: ".min.js",
                extDot: "first"
            }]
        }
    }