如果我有以下文件/目录结构:
somemodule/
└── amd
└── src
└── foo.js
someothermodule/
└── amd
└── src
└── bar.js
我能否让grunt-contrib-uglify产生以下缩小的输出?
somemodule/
└── amd
└── build
└── foo.min.js
└── src
└── foo.js
someothermodule/
└── amd
└── build
└── bar.min.js
└── src
└── bar.js
到目前为止,我已经尝试了以下Grunt配置:
grunt.initConfig({
uglify: {
dynamic_mappings: {
files: [
{
expand: true,
src: ['**/amd/src/*.js', '!**/node_modules/**'],
dest: 'build/',
ext: '.min.js',
extDot: 'first'
},
],
}
}
});
这给了我一些东西,但不是我想要的东西(输出放在我项目根目录的build /目录中):
build/
├── somemodule
│ └── amd
│ └── src
│ └── foo.min.js
└── someothermodule
└── amd
└── src
└── bar.min.js
我有点卡在这里从哪里去 - 任何指针都会受到赞赏。如果需要,非常乐意详细说明。
-Dave
答案 0 :(得分:1)
管理根据这个问题找出我想做的事情:How to grunt-uglify multiple script files while keeping folder structure
我结束了以下重命名功能:
files: grunt.file.expandMapping(['**/amd/src/*.js', '!**/node_modules/**'], '', {
rename: function(destBase, destPath) {
destPath = destPath.replace('src', 'build');
destPath = destPath.replace('.js', '.min.js');
return destPath;
}
})