1.安裝npm gulp相關插件 好比:gulp、gulp-concat、gulp-htmlmin、gulp-cssmin、gulp-cheerio、gulp-cleanjavascript
2. 編寫gulpfile.jscss
//獲取 gulp var gulp = require('gulp'); //壓縮 JS var uglify = require('gulp-uglify'); //合併文件 var concat = require('gulp-concat'); //壓縮html var htmlmin = require('gulp-htmlmin'); //壓縮css var cssmin = require('gulp-cssmin'); //合併文件到html var cheerio = require('gulp-cheerio'); var domSrc = require('gulp-dom-src'); //清空文件夾 var clean = require('gulp-clean'); //混淆js var javascriptObfuscator =require('gulp-javascript-obfuscator') gulp.task('clean',function(){ return gulp.src('./dist',{read:false}) .pipe(clean()); }); //壓縮 js 文件 gulp.task('jscompress', function() { return gulp.src(['src/js/*.js','!src/js/**/{iview.min,vue.min,zh-cn.min}.js']) .pipe(javascriptObfuscator( //{compact:true, //sourceMap: true} )) // .pipe(uglify({ // mangle: {reserved:['require' ,'exports' ,'module' ,'$']},//類型:Boolean 默認:true 是否修改變量名 // compress: true //類型:Boolean 默認:true 是否徹底壓縮 // })) .pipe(concat('index.min.js'))//輸入到index.min.js中 .pipe(gulp.dest('dist/js')); }); //壓縮 css 文件 gulp.task('csscompress', function() { return gulp.src(['src/css/*.css','!src/css/*/{iview.min}.css']) .pipe(cssmin({ advanced: false,//類型:Boolean 默認:true [是否開啓高級優化(合併選擇器等)] //compatibility: 'ie7',//保留ie7及如下兼容寫法 類型:String 默認:''or'*' [啓用兼容模式; 'ie7':IE7兼容模式,'ie8':IE8兼容模式,'*':IE9+兼容模式] keepBreaks: false,//類型:Boolean 默認:false [是否保留換行] keepSpecialComments: '*' //保留全部特殊前綴 當你用autoprefixer生成的瀏覽器前綴,若是不加這個參數,有可能將會刪除你的部分前綴 })) .pipe(concat('index.min.css'))//輸入到index.min.css .pipe(gulp.dest('dist/css')); }); //壓縮html gulp.task('thtml',function(done){ var options = { collapseWhitespace:true, collapseBooleanAttributes:true, removeComments:true, removeEmptyAttributes:true, removeScriptTypeAttributes:true, removeStyleLinkTypeAttributes:true, minifyJS:true, minifyCSS:true }; gulp.src('src/index.html') .pipe(htmlmin(options)) .pipe(gulp.dest('dist/')); done(); }); //替換html頁面引用 gulp.task('replaceindex', function() { return gulp.src('dist/index.html') .pipe(cheerio(function ($) { $('script').remove(); $('link').remove(); $('body').append('<script src="/js/vue.min.js"></script>'); $('head').append('<link rel="stylesheet" href="/css/iview.min.css">'); $('body').append('<script src="/js/iview.min.js"></script>'); $('head').append('<link rel="stylesheet" href="/css/index.min.css">'); $('body').append('<script src="/js/index.min.js"></script>'); })) .pipe(gulp.dest('dist/')); }); //copy 不須要的壓縮文件 gulp.task('copy',function(done){ gulp.src('src/js/*.min.js') .pipe(gulp.dest('dist/js')); gulp.src('src/css/*.min.css') .pipe(gulp.dest('dist/css')); done(); }); gulp.task('build',gulp.series(gulp.parallel('jscompress','csscompress','thtml','copy'),'replaceindex',function(done){ done(); }));
3.執行gulp build 命令html
4.預覽頁面 (經過IIS訪問) http://192.168.1.106:8017/index.htmlvue
5.相關代碼java
源碼下載npm