i using usemin generate js , css files - in pretty standard way.
only problem having remove old compiled files dist.
my grunt config is:
grunt.registertask('build',['jshint','copy','html2js:main','useminprepare','concat:generated','cssmin:generated','uglify:generated','filerev','usemin','html2js:embed','clean:build']); grunt.initconfig({ pkg: grunt.file.readjson('package.json'), default: {}, useminprepare: { html: 'index.html', options: { dest: 'dist', flow: { steps: { nominjs: ['concat'], js: ['concat','uglifyjs'], css: ['concat','cssmin'] }, post: {} } } }, filerev: { options: { encoding: 'utf8', algorithm: 'md5', length: 8 }, source: { files: [{ src: [ 'dist/assets/css/ipp-styles.min.css', 'dist/scripts/ipp-scripts.min.js', 'dist/scripts/ipp-libs.js', 'dist/scripts/ipp-templates.min.js' ] }] } }, usemin: { html:['dist/index.html'], options: { blockreplacements: { nominjs: function(block){ return '<script src="'+block.dest+'"></script>'; } } } }, clean: { build: ['.tmp'] }, copy: { html: { files: [ {expand:true, src:['index.html'], dest: 'dist'}, {expand:true, src:['.htaccess'], dest: 'dist'} ] }, assets: { files: [ {expand:true, src:['assets/images/**','assets/fonts/**','assets/js/**'], dest: 'dist'} ] }, libs: { files: [ {expand:true, src:['libs/forge.min.js'], dest: 'dist'}, ] }, config: { files: [ {expand:true, src:['config/config_diff.js'], dest:'dist', rename: function(dest,src){ return dest + '/' + src.replace(/\.js$/,"_sample.js"); }}, ] } }, jshint: { options: { force: true, esnext: true }, all: [ 'config/*.js', 'scripts/**/*.js', '!scripts/ipp-scripts*' ] }, uglify: { options: { compress: { drop_console: true } } }, html2js: { main: { options: { base:'' }, src: ['views/**/*.html'], dest: 'dist/scripts/templates.js' } } }); nothing special say. works great, "problem" having after couple of builds end this:

and have go , manually remove old files.
is there way remove them during grunt run ? remove "ipp-scripts.min*" after run, need exclude 1 used...
thank advice
i guess wasn't thinking straight when setting up. solution easier expected.
simply:
clean: { dist: [ 'dist/assets/css/ipp-styles.min*', 'dist/scripts/ipp-scripts.min*', 'dist/scripts/ipp-libs.min*', 'dist/scripts/ipp-templates.min*' ] }, and run first task in build.
this remove compiled files first , compile new ones.
i think confused me thought if dont have last compiled, filerev gonna mark latest file new stamp , therefore force re-load on user browsers. stamp added file somehow counted (probably) content sum, if delete file first , dont change file same name generated.
i realize still not ultimate solution on how remove other files 1 included in index, not gonna accept own answer.
Comments
Post a Comment