【发布时间】:2016-07-25 21:30:37
【问题描述】:
我有一个 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”之类的东西。但我不希望每次编辑/更新我的代码时都运行库和插件。但是能够以某种方式设置它以便我可以运行类似grunt uglify-libs 的东西。
这可行吗?
非常感谢
更新
根据下面的 cmets,我尝试更详细地解释。
现在,我运行grunt watch,它返回一个输出文件。
我想将其更改为具有三个输出文件,一个用于库文件,一个用于插件,另一个是我编写的代码。
所以当我运行Grunt watch 时,它只会查看我的代码中的文件,而不是任何库或插件文件。
然后我希望能够运行,Grunt uglify-libs,这将生成 libs 文件。
插件也是如此,但类似Grunt uglify-plugs。
所以基本上我想要三个 uplify 任务,但只有一个在 watch 函数中运行。
希望帮助解释更多。
非常感谢。
【问题讨论】:
标签: javascript gruntjs grunt-contrib-watch grunt-contrib-uglify