使用 Uglify 的多个目标目录
Multiple destination directories using Uglify
如果我有以下file/directory结构:
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
我对从这里到哪里有点困惑 - 任何指点将不胜感激。如果需要,非常乐意详细说明任何事情。
-戴夫
设法根据这个 SO 问题找出我想做的事情: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;
}
})
如果我有以下file/directory结构:
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
我对从这里到哪里有点困惑 - 任何指点将不胜感激。如果需要,非常乐意详细说明任何事情。
-戴夫
设法根据这个 SO 问题找出我想做的事情: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;
}
})