复杂的 gruntjs 任务
Complex gruntjs tasks
我有以下场景:
- 连接一些文件
- uglify 一些文件(基于连接的文件)
- 将一个文件连接到另一个文件(上面已丑化)
我该怎么写gruntfile.js?
我试过类似的方法,但没有用。
谢谢
module.exports = function(grunt) {
grunt.initConfig({
pkg:grunt.file.readJSON('package.json'),
concat: {
target: {
files: [{
"dest/js/admin.main.js": ["js/spa.js", "js/spa.library.js"],
"dest/js/jquery-1.min.js": ["js/jquery.min.js", "js/jquery-ui.min.js"]
}]}
},
uglify: {
target: {
files: [{
"dest/js/admin.main.min.js": ["dest/js/admin.main.js"],
"dest/js/jquery-2.min.js": ["js/jquery.loadingoverlay.js"]
}]
}
},
concat: {
target: {
files: [{
"dest/js/jq.min.js": ["dest/js/jquery-1.min.js", "dest/js/jquery-2.min.js"]
}]
}
}
});
grunt.loadNpmTasks("grunt-contrib-concat");
grunt.loadNpmTasks("grunt-contrib-uglify");
grunt.registerTask("default", ["concat", "uglify"]);
};
在 grunt 中,您只能为一个任务定义一次配置,但您可以定义多个目标(使用不同的名称)。因此,在您的情况下,您需要在 'concat' 任务下定义两个目标,然后按顺序调用它们:
module.exports = function(grunt) {
grunt.initConfig({
pkg:grunt.file.readJSON('package.json'),
concat: {
step1: {
files: [{
"dest/js/admin.main.js": ["js/spa.js", "js/spa.library.js"],
"dest/js/jquery-1.min.js": ["js/jquery.min.js", "js/jquery-ui.min.js"]
}]
},
step2: {
files: [{
"dest/js/jq.min.js": ["dest/js/jquery-1.min.js", "dest/js/jquery-2.min.js"]
}]
}
},
uglify: {
target: {
files: [{
"dest/js/admin.main.min.js": ["dest/js/admin.main.js"],
"dest/js/jquery-2.min.js": ["js/jquery.loadingoverlay.js"]
}]
}
},
});
grunt.loadNpmTasks("grunt-contrib-concat");
grunt.loadNpmTasks("grunt-contrib-uglify");
grunt.registerTask("default", ["concat:step1", "uglify", "concat:step2"]);
};
我有以下场景:
- 连接一些文件
- uglify 一些文件(基于连接的文件)
- 将一个文件连接到另一个文件(上面已丑化)
我该怎么写gruntfile.js?
我试过类似的方法,但没有用。
谢谢
module.exports = function(grunt) {
grunt.initConfig({
pkg:grunt.file.readJSON('package.json'),
concat: {
target: {
files: [{
"dest/js/admin.main.js": ["js/spa.js", "js/spa.library.js"],
"dest/js/jquery-1.min.js": ["js/jquery.min.js", "js/jquery-ui.min.js"]
}]}
},
uglify: {
target: {
files: [{
"dest/js/admin.main.min.js": ["dest/js/admin.main.js"],
"dest/js/jquery-2.min.js": ["js/jquery.loadingoverlay.js"]
}]
}
},
concat: {
target: {
files: [{
"dest/js/jq.min.js": ["dest/js/jquery-1.min.js", "dest/js/jquery-2.min.js"]
}]
}
}
});
grunt.loadNpmTasks("grunt-contrib-concat");
grunt.loadNpmTasks("grunt-contrib-uglify");
grunt.registerTask("default", ["concat", "uglify"]);
};
在 grunt 中,您只能为一个任务定义一次配置,但您可以定义多个目标(使用不同的名称)。因此,在您的情况下,您需要在 'concat' 任务下定义两个目标,然后按顺序调用它们:
module.exports = function(grunt) {
grunt.initConfig({
pkg:grunt.file.readJSON('package.json'),
concat: {
step1: {
files: [{
"dest/js/admin.main.js": ["js/spa.js", "js/spa.library.js"],
"dest/js/jquery-1.min.js": ["js/jquery.min.js", "js/jquery-ui.min.js"]
}]
},
step2: {
files: [{
"dest/js/jq.min.js": ["dest/js/jquery-1.min.js", "dest/js/jquery-2.min.js"]
}]
}
},
uglify: {
target: {
files: [{
"dest/js/admin.main.min.js": ["dest/js/admin.main.js"],
"dest/js/jquery-2.min.js": ["js/jquery.loadingoverlay.js"]
}]
}
},
});
grunt.loadNpmTasks("grunt-contrib-concat");
grunt.loadNpmTasks("grunt-contrib-uglify");
grunt.registerTask("default", ["concat:step1", "uglify", "concat:step2"]);
};