zoukankan      html  css  js  c++  java
  • gulp搭建框架,起前端服务步骤

    gulp创建项目
    1、新建项目文件夹,  npm init
    2、全剧安装gulp        npm install -g gulp
    3、修改package.json添加
    package.json
    1 "devDependencies": {
    2     "gulp": "^3.9.1", //本地gulp
    3     "gulp-imagemin": "^2.3.0", //图片压缩
    4     "gulp-minify-css": "^1.2.4", //css压缩
    5     "gulp-uglify": "^1.5.3", //js压缩
    6     "gulp-util": "^3.0.7", //控制台代码着色
    7     "gulp-watch-path": "^0.1.0", //文件很多时编辑哪个哪个压缩,不会全部压缩(获取改变的文件的src和dest路径)
    8     "stream-combiner2": "^1.1.1" //有些 gulp 任务编译出错会终止       gulp.watch,使用 gulp-watch-path 配合stream-combiner2 可避免这种情况
    9 }

    4、执行npm install
    5、新建gulpfile.js文件,gulp功能如下
      gulp一共五中方法:
      gulp.task()——新建任务
      gulp.src()——获取文件源地址
      gulp.dest()——文件输出地址
      gulp.run()——运行任务
      gulp.watch()——监听文件修改
    6、修改gulpfile.js文件(根据项目架构设置路径)目的:起动前端服务,将app中的css、js、html、等文件打包到dist文件中
      
      1 //引入插件变量
      2 var gulp = require('gulp'),  
      3     uglify = require('gulp-uglify'),  
      4     minifycss = require('gulp-minify-css'),  
      5     imgmin = require('gulp-imagemin'),  
      6     gutil = require('gulp-util'),  
      7     watchPath = require('gulp-watch-path'),  
      8     combiner = require('stream-combiner2'); 
      9 const browserSync = require('browser-sync');
     10 
     11 //新建代码着色与显示错误日志方法,这个方法用到了gulp-util和stream-combiner2插件
     12 var handleError=function(err){  
     13     console.log('
    ');  
     14     gutil.log('fileName: '+gutil.colors.red(err.fileName));  
     15     gutil.log('lineNumber: '+gutil.colors.red(err.lineNumber));  
     16     gutil.log('message: ' + err.message);  
     17     gutil.log('plugin: ' + gutil.colors.yellow(err.plugin));  
     18 };  
     19 
     20 //新建js批量压缩任务
     21 gulp.task('script',function(){//script时自定义的  
     22 //将文件的源路径和发布路径赋值给相应变量  
     23     var srcJsPath='js/*.js';  
     24     var destJsPath='dist/js/';  
     25     var combined = combiner.obj([  
     26             gulp.src(srcJsPath),//获取文件源地址  
     27             uglify(),//执行压缩  
     28             gulp.dest(destJsPath)//将压缩的文件发布到新路径  
     29         ]);  
     30     combined.on('error', handleError);//打印错误日志  
     31 });
     32 
     33 //图片打包
     34 gulp.task('images', () => {
     35   return gulp.src('app/images/**/*')
     36     //.pipe($.cache($.imagemin({
     37     //  progressive: true,
     38     //  interlaced: true,
     39     //  // don't remove IDs from SVGs, they are often used
     40     //  // as hooks for embedding and styling
     41     //  svgoPlugins: [{cleanupIDs: false}]
     42     //})))
     43     .pipe(gulp.dest('dist/images'));
     44 });
     45 
     46 //这种写法需要css目录下有很多css文件,只要改变了一个点击保存的时候gulp会把所有css文件都会压缩一遍,为了提高性能我们可以利用gulp-watch-path插件只压缩/发布修改的文件
     47 gulp.task('watchjs',function(){  
     48     gulp.watch('js/*.js',function(event){  
     49     var paths=watchPath(event,'js/','dist/js/');  
     50         //打印修改类型和路径  
     51         gutil.log(gutil.colors.green(event.type) + ' ' + paths.srcPath);  
     52         gutil.log('Dist: ' + paths.distPath);  
     53         //获取错误信息,继续执行代码  
     54         var combined = combiner.obj([  
     55                 gulp.src(paths.srcPath),  
     56                 uglify(),  
     57                 gulp.dest(paths.distDir)  
     58             ]);  
     59         combined.on('error', handleError);  
     60     });  
     61 }); 
     62 
     63 
     64 //编写default任务和监听任务
     65 //新建批量任务还是监听修改任务根据项目中实际需要去写,等我们写好很多任务之后就需要写入default中,default写好之后只需要在dos窗口写入gulp就可以自动执行任务
     66 gulp.task('default',function(){  
     67     //默认执行的方法,引号内的内容对应上面task写的内容  
     68     gulp.run('watchjs','css','images');  
     69     //监控js  
     70     gulp.watch('js/*.js',['watchjs']);  
     71     //监控css  
     72     gulp.watch('css/*.css',['css']);  
     73     //监控img  
     74     gulp.watch('images/*.*',['images']);  
     75 });
     76 
     77 gulp.task('serve', [], () => {
     78   browserSync({
     79     notify: false,
     80     port: 3000,
     81     ghostMode: false,
     82     server: {
     83       baseDir: ['app']
     84     },
     85     // middleware: [proxy('/api', {
     86     //   target: 'http://apidev.e.com',
     87     //   changeOrigin: true
     88     // })]
     89   });
     90 
     91   // gulp.watch([
     92   //   'app/*.html',
     93   //   'app/images/**/*'
     94   // ]).on('change', reload);
     95 
     96   // gulp.watch('app/styles/**/*.scss', ['styles']);
     97   // gulp.watch('app/scripts/helpers/tsf/**/*.scss', ['styles']);
     98   // gulp.watch('app/scripts/**/*.js', ['styles']);
     99   // gulp.watch('app/fonts/**/*', ['fonts']);
    100   // gulp.watch('bower.json', ['wiredep', 'fonts']);
    101 });
    gulpfile.js

  • 相关阅读:
    hdu 6702 ^&^ 位运算
    hdu 6709 Fishing Master 贪心
    hdu 6704 K-th occurrence 二分 ST表 后缀数组 主席树
    hdu 1423 Greatest Common Increasing Subsequence 最长公共上升子序列 LCIS
    hdu 5909 Tree Cutting FWT
    luogu P1588 丢失的牛 宽搜
    luogu P1003 铺地毯
    luogu P1104 生日
    luogu P1094 纪念品分组
    luogu P1093 奖学金
  • 原文地址:https://www.cnblogs.com/cutone/p/8259556.html
Copyright © 2011-2022 走看看