loo*_*ing 57 javascript compression gruntjs
静态/ js /中有一些js文件
1. a.js
2. b.js
3. c.js
Run Code Online (Sandbox Code Playgroud)
如何配置grunt.js以获取以下文件:
1. a.min.js
2. b.min.js
3. c.min.js
Run Code Online (Sandbox Code Playgroud)
到目前为止,我必须输入特定的文件名:
min: {
dist: {
src: 'js/**/*.js',
dest: 'js/min/xxx.min.js'
}
}
Run Code Online (Sandbox Code Playgroud)
Fra*_*ent 52
遇到同样的问题,找到了一个可以自动缩小所有脚本的解决方案:
uglify: {
build: {
files: [{
expand: true,
src: '**/*.js',
dest: 'build/scripts',
cwd: 'app/scripts'
}]
}
}
Run Code Online (Sandbox Code Playgroud)
Sin*_*hus 23
在grunt 0.4中,您可以指定多个dest/src对,如下所示:
uglify: {
dist: {
files: {
'dist/main.js': 'src/main.js',
'dist/widget.js': 'src/widget.js'
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 17
或者您可以使用expandMapping,如下所示:
min: {
files: grunt.file.expandMapping(['path/*.js', 'path2/*.js'], 'destination/', {
rename: function(destBase, destPath) {
return destBase+destPath.replace('.js', '.min.js');
}
})
}
Run Code Online (Sandbox Code Playgroud)
并输出:
path/test.js => destination/path/test.min.js
path2/foo.js => destination/path2/foo.min.js
小智 14
这下面的gruntjs适用于为dir下的所有js文件创建缩小文件
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
build: {
files: [{
expand: true,
src: '**/*.js',
dest: 'build/scripts',
cwd: 'public_html/app',
ext: '.min.js'
}]
}
}
});
// Load the plugin that provides the "uglify" task.
grunt.loadNpmTasks('grunt-contrib-uglify');
// Default task(s).
grunt.registerTask('default', ['uglify']);
};
Run Code Online (Sandbox Code Playgroud)
来自grunt docs for min:
此任务是一项多任务,这意味着如果未指定目标,grunt将自动迭代所有最小目标.
所以你可以这样做:
min: {
min_a: {
src: 'a.js',
dest: 'a.min.js'
},
min_b: {
src: 'b.js',
dest: 'b.min.js'
},
min_c: {
src: 'c.js',
dest: 'c.min.js'
}
Run Code Online (Sandbox Code Playgroud)
这些任务的名称'dist'没有什么特别之处.