我有一个gruntjs文件,它有一个registerTask('default',['concat','uglify','watch']); 如果我保存我的scss文件,它将更新我的css文件。但是如果我想让Grunt concat并uglify我的JS,我必须进入终端,退出监视,然后运行grunt命令。它真的很烦人。
当我保存任何JS和/或css文件时,有没有办法让grunt运行所有这些任务?无需每次都进入终端?如果有帮助的话,继承我的gruntfile。
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
compass: {
dist: {
options: {
sassDir: 'sass',
cssDir: 'css'
}
}
},
watch: {
css: {
files: '**/*.scss',
tasks: ['compass']
}
},
concat: {
options: {
separator: '\n\n'
},
dist: {
src: ['js-game/*.js'],
dest: 'js/<%= pkg.name %>.js'
}
},
uglify:{
options:{mangle:false},
my_target:{
files:{'js/<%= pkg.name %>.min.js' : ['js/<%= pkg.name %>.js']
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-compass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default',['concat','uglify','watch']);
}
非常感谢大家。
答案 0 :(得分:0)
我想如果你添加:
scripts: {
files: ['**/*.js'],
tasks: ['jshint'],
}
它应该工作的监视任务,您可能需要:
scripts: {
files: ['**/*.js'],
tasks: ['jshint'],
options: {
spawn: false,
}
}
因此,在上面的Gruntfile.js中,它将类似于:
module.exports = function(grunt) {
grunt.initConfig({ pkg:grunt.file.readJSON(&#39; package.json&#39;),
compass: {
dist: {
options: {
sassDir: 'sass',
cssDir: 'css'
}
}
},
watch: {
css: {
files: '**/*.scss',
tasks: ['compass']
},
scripts: {
files: ['**/*.js'],
tasks: ['jshint'],
options: {
spawn: false,
}
}
},
concat: {
options: {
separator: '\n\n'
},
dist: {
src: ['js-game/*.js'],
dest: 'js/<%= pkg.name %>.js'
}
},
uglify:{
options:{mangle:false},
my_target:{
files:{'js/<%= pkg.name %>.min.js' : ['js/<%= pkg.name %>.js']
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-compass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default',['concat','uglify','watch']);
}
应该有希望这样做。
答案 1 :(得分:0)
您可以添加多个要监视的任务。因此,如果您想在保存时进行连接和uglify,您可以这样做:
watch: {
css: {
files: '**/*.scss',
tasks: ['compass']
},
scripts: {
files: ['js-game/*.js'],
tasks: ['concat', 'uglify'],
options: {
spawn: false,
}
}
},
我希望这会有所帮助!