zoukankan      html  css  js  c++  java
  • gulp使用

    一.准备:

    • Npm 是去国外的一个服务器下载js, 那么有的时候会卡, 可以使用国内的镜像代替,
    • 测试使用cnpm -v 有弹出版本号, 则安装完成
    • 新建一个项目目录, 路径之中不能带有中文, 并且项目目录名称不能是gulp  !!!!
    • 到新建的项目目录中打开命令行工具! 然后使用 npm init 或者 cnpm init
    • 认识几个名词  --global(-g)  全局安装   --save-dev  开发依赖    --save  生产环境依赖
    • 安装中文网站的入门指南进行操作, 安装好gulp之后, 输入gulp -v 测试是否安装完毕!
    • --save-dev : 是将第三方插件添加到工程项目开发依赖列表,以下插件主要用于html/css/js文件压缩合并混淆以及浏览器同步操作:

    "devDependencies": {
      "browser-sync": "^2.18.13",
      "gulp": "^3.9.1",
      "gulp-concat": "^2.6.1",
      "gulp-cssnano": "^2.1.2",
      "gulp-htmlmin": "^3.0.0",
      "gulp-less": "^3.3.2",
      "gulp-sass": "^3.1.0",
      "gulp-uglify": "^3.0.0",
      "node-sass": "^4.5.3"
    }

    二.在gulp安装完毕之后,使用gulp:  

    1. 在工程项目根目录下, 新建一个gulpfile.js文件
    2. 再建立两个文件夹,  分别命名为 src  和  dist
    3. 再到src目录下  建立  index.html 文件
    4. 创建完成:
    • src/index.html  复制到dist/ 
    • 在src文件夹下 创建一个js文件夹, 再创建 /src/js/a.js  和 /src/js/b.js  , 合并多个js并且混淆(压缩和加密) 使用 gulp-concat  gulp-uglify
    • 任务三: 压缩css  使用gulp-cssnano
    • 转码less   使用gulp-less
    • 转码sass  使用gulp-sass 错误处理 : 在下载gulp-sass的时候, 发现 node-sass存在github的某一个仓库, 那个地址 被墙, 需要单独先下载node-sass  具体命令如下npm i node-sass -g  npm i node-sass --save-dev, 再去下载gulp-sass就可以了!
    • 压缩html  使用gulp-htmlmin 去掉注释, 去掉属性值的引号, 去掉type=”text/javascript”
    • 自动完成以上任务  使用gulp.watch
    • 浏览器同步  使用 browser-sync  修改同步选项  登录 localhost:3001

    三.下面附gulpfile.js配置代码,注意修改文件路径:

    var gulp = require('gulp');
    var concat = require('gulp-concat');
    var uglify = require('gulp-uglify');
    var Cssnano = require('gulp-cssnano');
    var less = require('gulp-less');
    var sass = require('gulp-sass');
    var htmlmin = require('gulp-htmlmin');
    var browserSync = require('browser-sync').create();
    
    gulp.task('concat-uglify-js', function() {
          gulp.src('./src/js/*.js')
            .pipe(concat('js.js'))
            .pipe(uglify())
            .pipe(gulp.dest('./dist/js/'));
    });
    gulp.task('cssnano', function() {
          gulp.src('./src/styles/*.css')
            .pipe(Cssnano())
            .pipe(gulp.dest('./dist/styles/'));
    });
    gulp.task('less', function() {
        gulp.src('./src/styles/*.less')
          .pipe(less())
          .pipe(Cssnano())
          .pipe(gulp.dest('./dist/styles/'));
    });
    gulp.task('sass',function(){
        gulp.src('./src/styles/*.sass')
          .pipe(sass())
          .pipe(Cssnano())
          .pipe(gulp.dest('./dist/styles/'));
    });
    gulp.task('sass',function(){
        gulp.src('./src/styles/*.scss')
          .pipe(sass())
          .pipe(Cssnano())
          .pipe(gulp.dest('./dist/styles/'));
    });
    gulp.task('minify', function() {
        gulp.src('src/*.html')
          .pipe(htmlmin({
            collapseWhitespace: true, //  折叠对文档树中的文本节点有贡献的空白空间,不可缺
            removeAttributeQuotes: true, //尽可能删除属性的引号
            removeScriptTypeAttributes: true, //从script标签中移除 其他type属性值保持不变
            minifyJS: true, //缩小脚本元素和事件属性中的JavaScript(使用UglifyJS)
            removeComments :true //剥离HTML注释
          }))
          .pipe(gulp.dest('./dist/'))
          .pipe(browserSync.reload({
            stream:true
          }));
    });
    gulp.task('copy', function() {
      // 将你的默认的任务代码放在这
          gulp.src("./src/*.html")
              .pipe(gulp.dest("./dist"));
    });
    gulp.task('autogulp',function(){
        gulp.watch('./src/js/*.js',['concat-uglify-js']);
        gulp.watch('./src/styles/*.sass',['sass']);
        gulp.watch('./src/*html',['minify']);
    });
    gulp.task('browser-sync',function(){
        browserSync.init({
          server:{
            baseDir:"./dist"
          }  
        });
        gulp.watch('./src/js/*.js',['concat-uglify-js']);
        gulp.watch('./src/styles/*.sass',['sass']);
        gulp.watch('./src/*html',['minify']);
    });
  • 相关阅读:
    《学习之道》第十章方法空间能力是可以后天形成的
    《学习之道》第十章总结
    《学习之道》第十章视觉和空间记忆的原因
    数据结构之链表:双指针问题
    单例模式
    Java的锁
    Python锁
    排序算法小结
    命中索引
    反射
  • 原文地址:https://www.cnblogs.com/nlj-blog/p/7567966.html
Copyright © 2011-2022 走看看