多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# gulpfile.js代码的优化 ``` /** * 定义源目录和输出目录 * */ var app={ 'appSrc':'src/', 'appBuild':'build/', 'appDist':'dist/', } var gulp = require('gulp'); /*导入gulp-less插件*/ var less = require('gulp-less'); /*导入gulp-cssmin插件*/ var cssmin = require('gulp-cssmin'); /*导入gulp-concat插件*/ var concat = require('gulp-concat'); /*导入gulp-uglify 插件*/ var uglify = require('gulp-uglify'); /*导入gulp-imagemin 插件*/ var imagemin = require('gulp-imagemin'); /*导入gulp-open插件*/ var open = require('gulp-open'); /*导入gulp-connect插件*/ var connect = require('gulp-connect'); /** * 1.注册了一个html的任务 * */ gulp.task('html', function() { /** * 意思是读取src下所有的.html文件 * ** : 代表是src下的任意目录, 0个或者多个 * */ gulp.src(app.appSrc+'**/*.html') /*读取index.html文件*/ .pipe( gulp.dest(app.appBuild)) /*将读取的文件写到build目录(没有会自动新建)*/ .pipe( gulp.dest(app.appDist)) /*再将读取的文件写到dist目录(没有会自动新建)*/ .pipe(connect.reload()) //当内容发生改变时, 重新加载。 }); /** * 2.注册了一个less的任务 * */ gulp.task('less', function() { /** * 意思是读取src/style下所有的.less文件 * ** : 代表是src下的任意目录, 0个或者多个 * */ gulp.src(app.appSrc+'style/**/*.less') /*读取.less文件*/ .pipe( less() ) /*将读取的 less文件 转成 css 文件 */ .pipe( gulp.dest(app.appBuild+'css')) /*将读取的css文件写到build目录(没有会自动新建)*/ .pipe( cssmin() ) /*将读取的 css文件 压缩 */ .pipe( gulp.dest(app.appDist+'css')) /*再将读取压缩过的css文件写到dist目录(没有会自动新建)*/ .pipe(connect.reload()) //当内容发生改变时, 重新加载。 }); /** * 3.注册了一个js的任务 * */ gulp.task('js', function() { /** * 意思是读取src/js下所有的.js文件 * ** : 代表是src下的任意目录, 0个或者多个 * */ gulp.src(app.appSrc+'js/**/*.js') /*读取.js文件*/ .pipe( concat('main.js') ) /*将读取所有的js文件 合并成一个main.js文件 */ .pipe( gulp.dest(app.appBuild)) /*将读取的文件写到build目录(没有会自动新建)*/ .pipe( uglify() ) /*将读取main.js文件并压缩main.js文件 */ .pipe( gulp.dest(app.appDist)) /*再将读取压缩后的文件写到dist目录(没有会自动新建)*/ .pipe(connect.reload()) //当内容发生改变时, 重新加载。 }); /** * 4.注册了压缩图片的任务 * */ gulp.task('image', function() { /** * 意思是读取src/image下所有的图片文件 * ** : 代表是src下的任意目录, 0个或者多个 * */ gulp.src(app.appSrc+'image/**/*') /*读取图片文件*/ .pipe( gulp.dest(app.appBuild+'image')) /*将读取所有的图片文件写到build目录(没有会自动新建)*/ .pipe( imagemin() ) /*将读取所有的图片文件进行压缩 */ .pipe( gulp.dest(app.appDist+'image')) /*再将读取压缩后的文件写到dist目录(没有会自动新建)*/ .pipe(connect.reload()) //当内容发生改变时, 重新加载。 }); /** * 5.注册一个lib任务( 把 bower下载的前端框架放到我们项目当中 ) * */ gulp.task('lib',function () { gulp.src(['bower_components/**/*.js','bower_components/**/*.css']) .pipe(gulp.dest(app.appBuild+'lib')) .pipe(gulp.dest(app.appDist+'lib')) .pipe(connect.reload()) //当内容发生改变时, 重新加载。 }); /** * 6.注册一个build任务(同时执行多个任务) * 当前 bulid 时,会自动把数组当中的所有任务给执行。 * */ gulp.task('build',['html','less','js','image','lib']); /** * 7.定义server任务 * 搭建一个服务器。设置运行的构建目录 * */ gulp.task('server',['build'],function () { /*1.设置web服务器*/ connect.server({ root:[app.appBuild],//服务器管理/运行哪个目录(默认是项目的根目录) livereload:true, //是否热更新。 port:9999 //指定web服务的端口号(默认是8080) }) /*2.gulp监视文件,并且可以在文件发生改动时候做一些事情. * 参数一:监视的文件 * 参数二: 在文件变动后执行的一个task任务 * */ gulp.watch(['bower_components/**/*'], ['lib']); gulp.watch(app.appSrc+'**/*.html',['html']); gulp.watch(app.appSrc+'js/**/*.js',['js']); gulp.watch(app.appSrc+'image/**/*',['image']); gulp.watch(app.appSrc+'style/**/*.less',['less']); //open相当于浏览器,下面是通过浏览器打开百度网址 var options = { uri: '127.0.0.1:9999', app: 'chrome' }; gulp.src('') .pipe(open(options)); }); /** * 8.定义默认任务 * 直接执行gulp 会调用该任务 * */ gulp.task('default',['server']); ``` 总结 需要(package.json,gulpfile.js) 通过npm i来下载package.json下面的所及依赖项