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

  • 相关阅读:
    android view生命周期
    ViewPager 滑动页(四)
    android 中如何获取camera当前状态
    Android LayoutInflater原理分析,带你一步步深入了解View(一)
    仿Twitter登陆移动背景效果
    Android应用性能优化之使用SQLiteStatement优化SQLite操作
    GreenDao官方文档翻译(下)
    高级IO
    linux信号
    LINUX进程
  • 原文地址:https://www.cnblogs.com/cutone/p/8259556.html
Copyright © 2011-2022 走看看