我的应用中有几个JS,CSS和HTML文件。这是一个巨大的应用程序,我试图递归缩小和uglify这些文件 inplace 。
我有一个构建服务器,我将原始集成到它中。在将文件丢弃到服务器之前,我想在相同的目录结构下进行缩小。
即: /app/sales/checkout.js(普通文件) minifed版本应该在同一个地方: /app/sales/checkout.js
我的grunt文件如下:
module.exports = function (grunt) {
grunt.initConfig({
// define source files and their destinations
uglify: {
files: {
src: 'com.foo.web.online.portal/**/*.js', // source files mask
expand: true, // allow dynamic building
flatten: true, // remove all unnecessary nesting
dest: ''
}
},
watch: {
js: { files: 'js/*.js', tasks: [ 'uglify' ] },
}
});
// load plugins
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-uglify');
// register at least this one task
grunt.registerTask('default', [ 'uglify' ]);
};
离开目的地空无效。
我有很多文件夹和子文件夹: / checkout / /几个js文件 / sales / /几个js文件 / search / ** /几个js文件
如何在原地和递归中缩小?
感谢。
答案 0 :(得分:2)
利用grunt rename函数动态构建文件对象。这可以使文件在相同的目录结构下缩小(即用新缩小的数据覆盖原始文件数据)。
<强> Gruntfile.js 强>
uglify
任务可以配置如下:
// ...
uglify: {
dev: { // <-- include a target object
files: [{
expand: true,
src: ['path/to/online/portal/**/*.js'],
// The dest value should be whatever the src glob
// pattern is, without the trailing /**/*.js part
dest: 'path/to/online/portal',
cwd: '.',
rename: function (dst, src) {
return src;
}
}]
}
},
//...
有关详细信息,请参阅grunt-contrib-uglify
文档的this部分。