Closed unbug closed 8 years ago
I dist a file to same dir,everytime it change,the file will has a new file.but other file include this file,got duplicate file from the references.
resources the file here.
var cachebust = new $.cachebust(); gulp.task('dist:libjs', function () { return gulp.src(['./static/app/src/lib/all.js']) .pipe($.fileInclude({ basepath: './static/app/src/lib/' })) .pipe($.cached('build-cache', { optimizeMemory: true })) .pipe(cachebust.references()) .pipe($.uglify()) .pipe(cachebust.resources()) .pipe(gulp.dest('./src/lib/')); });
references the file here
gulp.task('manifest', function (cb) { var resources = ['src/lib/all.js']; gulp.src(['./resources/**/*.*']) .pipe(through2.obj(function (file, enc, next) { this.push(file.path.replace(__dirname+'/','')); next(); })) .on('data', function (data) { resources.push(data) }) .on('end', function () { resources = resources.join('\n'); gulp.src(['./static/app/cache.manifest']) .pipe($.replace(/_BUILD_VERSION_/g, buildVersion)) .pipe($.replace(/_FILES_/g, resources)) .pipe(cachebust.references()) .pipe(gulp.dest('./')) .on('end', function () { cb(); }); }); });
the result
CACHE MANIFEST # Build: 20160128091500 CACHE: resources/fonts/Dressedless_Three.svg resources/fonts/Dressedless_Three.ttf resources/fonts/FontAwesome.otf resources/fonts/fontawesome-webfont.eot resources/fonts/fontawesome-webfont.svg resources/fonts/fontawesome-webfont.ttf resources/fonts/fontawesome-webfont.woff resources/fonts/fontawesome-webfont.woff2 resources/images/codelf_logo.png resources/images/paypal.png resources/images/twohardtings.jpg resources/images/wechatpay.jpg resources/images/zhifubao.png src/lib/all.10759ba8.js src/lib/all.43b6740a.js src/lib/all.672a024a.js src/lib/all.76dac1b2.js src/lib/all.7f03792e.js src/lib/all.980839dc.js src/lib/all.c8a41475.js src/lib/all.e40a7e60.js src/lib/all.ef6edcbb.js src/lib/all.f851782e.js NETWORK: *
the all.xxx.js files are duplicate,this not happend everytime,any suggestions? my whole gulpfile
all.xxx.js
require('date-utils'); var gulp = require('gulp'); var through2 = require('through2'); var $ = require('gulp-load-plugins')(); var runSequence = require('run-sequence'); var browserSync = require('browser-sync');//http://www.browsersync.io/docs/gulp/ var reload = browserSync.reload; var cachebust = new $.cachebust(); var webpack = require("webpack"); //build version: //script version //style version //manifest version var startTime = 0; var buildVersion = 0; gulp.task('build_version', function (cb) { var startDate = new Date(); startTime = startDate.getTime(); buildVersion = startDate.toFormat('YYYYMMDDHHMISS'); cb(); }); //watching script change to start default task gulp.task('watch', function () { return gulp.watch([ './static/app/**/*.*','!./static/app/src/AppBundle.js' ], function (event) { console.log('File ' + event.path + ' was ' + event.type + ', running tasks...'); runSequence('compile'); }); }); //clear dist folder gulp.task('clean:dist', function (cb) { cb(); // //return gulp.src(['./src/lib/*.js']) // .pipe($.clean({force: true})) }); gulp.task('dist:libjs', function () { return gulp.src(['./static/app/src/lib/all.js']) .pipe($.fileInclude({ basepath: './static/app/src/lib/' })) .pipe($.cached('build-cache', { optimizeMemory: true })) .pipe(cachebust.references()) .pipe($.uglify()) .pipe(cachebust.resources()) .pipe(gulp.dest('./src/lib/')); }); gulp.task("dist:appjs", function(callback) { // run webpack webpack({ entry: "./static/app/src/App.js", output: { path: __dirname + "/static/app/src", filename: "AppBundle.js" } }, function(err, stats) { if(err) throw new $.util.PluginError("webpack", err); $.util.log("[webpack]", stats.toString({ // output options })); callback(); }); }); gulp.task('dist:html', function () { return gulp.src(['./static/app/*.html']) .pipe($.fileInclude({ basepath: './static/app/' })) .pipe(cachebust.references()) .pipe($.htmlmin({ collapseWhitespace: true, removeComments: true, minifyJS: true, minifyCSS: true })) .pipe(gulp.dest('./')); }); //generate cache.manifest gulp.task('manifest', function (cb) { var resources = ['src/lib/all.js']; gulp.src(['./resources/**/*.*']) .pipe(through2.obj(function (file, enc, next) { this.push(file.path.replace(__dirname+'/','')); next(); })) .on('data', function (data) { resources.push(data) }) .on('end', function () { resources = resources.join('\n'); console.log(resources); gulp.src(['./static/app/cache.manifest']) .pipe($.replace(/_BUILD_VERSION_/g, buildVersion)) .pipe($.replace(/_FILES_/g, resources)) .pipe(cachebust.references()) .pipe(gulp.dest('./')) .on('end', function () { cb(); }); }); }); //browser-sync serve gulp.task('serve', function () { browserSync({ "open": false, server:{ dir: './' } }); gulp.watch(['./*.html'], reload); }); //print after tasks all done gulp.task('_endlog', function (cb) { var endDate = new Date(); var logs = []; logs.push('\nBuild version is ' + buildVersion); logs.push(', Completed in ' + ((endDate.getTime() - startTime) / 1000) + 's at ' + endDate + '\n'); console.log(logs.join('')); cb(); }); gulp.task('prepare', function (cb) { runSequence('build_version', cb); }); gulp.task('compile', function (cb) { runSequence('prepare', 'dist:libjs', 'dist:appjs', 'dist:html', 'manifest', cb); }); gulp.task('default', function (cb) { runSequence('clean:dist', 'compile', 'watch', 'serve', cb); });
@unbug it looks like you've got a build-up of old cache busted files. You need to add a gulp task to delete these old files before you generate new ones.
I dist a file to same dir,everytime it change,the file will has a new file.but other file include this file,got duplicate file from the references.
resources the file here.
references the file here
the result
the
all.xxx.js
files are duplicate,this not happend everytime,any suggestions? my whole gulpfile