zoukankan      html  css  js  c++  java
  • gulp4 配置less、"postcss-px-to-viewport、gulp-connect实现实时刷预览等

    gulp4 相对以前的版本进行了修改,不再支持 task 后面第二个参数任务数组的写法,改为以下两种方式来执行任务

    • gulp.parallel() --并行运行任务
    • gulp.series() --运行任务序列

    另外,gulp4 将 gulp-cli 和gulp分开了, cli只包含主要的命令,因此体积大幅缩小。 在使用前需要全局安装 gulp-cli, 以及本地安装gulp。

    下面主要处理多页面开发效率的三个问题:

    • less自动编译
    • postcss转vw(屏幕自适应)
    • 热更新(不需要手动刷新浏览器)

    直接上代码吧。

    package.json

    {
      "name": "name",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo "Error: no test specified" && exit 1"
      },
      "author": "",
      "license": "ISC",
      "devDependencies": {
        "autoprefixer": "^9.8.0",
        "gulp": "^4.0.2",
        "gulp-connect": "^5.7.0",
        "gulp-less": "^4.0.1",
        "gulp-postcss": "^8.0.0",
        "postcss-px-to-viewport": "^1.1.1"
      }
    }

    gulpfile.js

    const { src, dest, parallel, watch, series } = require('gulp');
    
    const postcss = require('gulp-postcss');
    const connect = require('gulp-connect');
    const autoprefixer = require('autoprefixer');
    const pxtoviewport = require('postcss-px-to-viewport');
    
    const less = require('gulp-less');
    
    const rootDir = '.';
    const lessDir = './static/less';
    const cssDir = './static/css/';
    
    const styleTask = (cb) => {
      const processors = pxtoviewport({
        viewportWidth: 800,
        viewportHeight: 450,
        viewportUnit: 'vw',
      });
    
      src(lessDir + '/*.less', { sourcemaps: true })
        .pipe(less())
        .pipe(postcss([autoprefixer, processors]))
        .pipe(dest(cssDir))
        .pipe(connect.reload());
      cb();
    };
    
    const startServer = (cb) => {
      const options = {
        livereload: true,
      };
      connect.server(options);
      cb();
    };
    
    const html = (cb) => {
      src(rootDir + '/*.html')
        // .pipe(dest(html_dir))
        .pipe(connect.reload());
      cb();
    };
    
    const gulpWatch = (cb) => {
      watch([rootDir + '/*.html'], parallel(html));
      watch([lessDir + '/*.less'], parallel(styleTask));
      cb();
    };
    
    const _defaults = series(startServer, styleTask, html, gulpWatch);
    
    exports.default = _defaults;
  • 相关阅读:
    BGP deterministic-med & compare-med
    BGP Always-compare-med & Deterministic-med
    BGP实验 MED , Cyrus
    BGP Lab AS-path prepend last-as
    详解C/C++中volatile关键字
    38、hashtable中解决冲突有哪些方法?
    37、STL中unordered_map和map的区别和应用场景
    36、set和map的区别,multimap和multiset的区别
    35、STL中map的实现
    34、STL中set的实现?
  • 原文地址:https://www.cnblogs.com/aleafo/p/12970417.html
Copyright © 2011-2022 走看看