我有一个如下的Grunt文件,
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
'uglify': {
options: {
preserveComments: 'some',
},
my_target: {
files: {
'site/assets/js/js_code.js': [
/* Libs */
'/js/libs/jquery_2.2.4.min.js',
'/js/libs/underscore_1.8.3.min.js',
'/js/libs/backbone_1.3.3.min.js',
/* Plugins */
'/js/plugins/dropzone.min.js',
'/js/plugins/jquery.magnific-popup.min.js',
'/js/plugins/jquery.validate.min.js',
/* Build JS Functions */
'/js/functions.js',
'/js/builder.js',
]
}
}
},
'sass': {
dist: {
options: {
style: 'expanded',
compass: true,
},
files: {
'assets/css/styles.css': '/scss/styles.scss',
} //End of Files
} //End of Dist.
}, //End of SASS
watch: {
'JS': {
files: ['/js/*.js'],
tasks: ['uglify'],
options: { spawn: false },
},
'Scss': {
files: ['/scss/*.scss'],
tasks: ['sass'],
options: { spawn: false },
}
}
});
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
};
我无法解决的问题,我做了很多研究,但似乎无法找到答案,是如何设置uglify来完成多项任务。
我知道我可以设置多个文件目标,但我不希望我的手表运行这些。所以我想设置一个'libs.js','plugins.js'和'my_code.js'之类的东西。但是我不希望每次编辑/更新代码时都运行lib和插件。但是能够以某种方式设置它以便我可以运行grunt uglify-libs
之类的东西。
可行吗?
非常感谢
更新
根据下面的评论,我试着更详细地解释一下。
现在,我运行grunt watch
,返回一个输出文件。
我想将此更改为三个输出文件,一个用于libs文件,一个用于插件,另一个用于我编写的代码。
因此,当我运行Grunt watch
时,它只会查看我的代码中的文件,而不会查看任何lib或插件文件。
然后我希望能够运行Grunt uglify-libs
,然后这将生成libs文件。
插件也是如此,但类似于Grunt uglify-plugs
。
所以基本上我想要三个升级任务,但只有一个在watch函数中运行。
希望有助于解释更多。
非常感谢。
答案 0 :(得分:0)
如果我理解你,你想使用一个grunt命令来启动多个任务。你可以通过创建一个父母"任务,他们调用多个子任务,如下所示:
grunt.registerTask('uglify-libs', ['sass', 'uglify']);