我正在处理一些自动化任务,我注意到grunt.js和uglify模块没有重写缩小的文件。每当我开始执行繁琐的任务时,他们就会附加新版本的代码。
module.exports = function(grunt) {
grunt.initConfig({
uglify : {
build : {
src : ['**/*.js', '!*.min.js'],
cwd : 'js/app/modules/',
dest : 'js/app/modules/',
expand : true,
ext : '.main.min.js',
},
}
});
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.registerTask('default', ['uglify']);
};
我可以做些什么来避免它?我只想在文件中使用最新版本的代码。
答案 0 :(得分:10)
对于js /(例如js / lib / * .js)子文件夹中的所有文件,我遇到了同样的问题:
build: {
expand: true,
cwd: 'js/',
src: ['**/*.js','!*.min.js'],
dest: 'js/',
ext: '.min.js',
}
你必须限制更多的文件,因为如果文件与src-option匹配,内容将被追加而不被替换 - 因为它被“锁定”我想:
src: ['**/*.js','!**/*.min.js']
那应该可以解决你的问题。
答案 1 :(得分:1)
谢谢SpazzMarticus!我用户grunt-newer仅使用较新的文件运行uglify。 你可以试试这个:
grunt.initConfig({
uglify: {
options: {
},
build: {
files: [{
expand: true,
cwd: 'public/js',
src: ['**/*.js','!**/*.min.js'],
dest: 'public/js',
ext: '.min.js'
}]
}
},
watch: {
options: {
livereload: true,
nospawn: true
},
scripts:{
files: ['public/js/**/*.js'],
tasks: ['newer:uglify']
}
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-newer');
grunt.registerTask('yt', ['watch']);