用gulp清除、移动、压缩、合并、替换代码

摘要:
以前,grut用于前端代码部署。后来,发布了一个Gulp工具。我最近试了一下,它比呼噜声更方便、更容易使用。以下是一些常见的待机任务。vargulp=要求('gulp');varsdir='0.0.1';varddir='0.0.1.release';vargutil=要求('gul-til');varclean=要求('ulp-clean');瓦

之前前端代码部署时用的是grunt,后来又出了个gulp工具,最近试用了一下,很方便,感觉比grunt简单好用,下面把一些常见的任务列一下,备用。

var gulp = require('gulp');

var sdir = '0.0.1';
var ddir = '0.0.1.release';

var gutil = require('gulp-util');
var clean = require('gulp-clean');
var minifyCSS = require('gulp-minify-css');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var processhtml = require('gulp-processhtml');

gulp.task('clean', function(){
  return gulp.src(['./'+ddir+'/*'], {read:false})
  .pipe(clean());
});

var filesToMove = [
    './'+sdir+'/data/**/*.*',
    './'+sdir+'/img/*.*'
];

gulp.task('move', ['clean'], function(){
  return gulp.src(filesToMove, {base: './'+sdir+'/' })
  .pipe(gulp.dest('./'+ddir+'/'));
});

gulp.task('concat-minify-css', ['clean'], function() {
  return gulp.src([
      './'+sdir+'/css/style.css',
      './'+sdir+'/css/animate.css'])
    .pipe(concat('index.css'))
    .pipe(minifyCSS())
    .pipe(gulp.dest('./'+ddir+'/css/'));
});

gulp.task('concat-uglify-script-index', ['clean'], function() {
   return gulp
      .src([
        "./"+sdir+"/js/jquery.js",
        "./"+sdir+"/js/main.js"])
      .pipe(concat('index.js'))
      .pipe(uglify())
      .pipe(gulp.dest('./'+ddir+'/js/'));
});

gulp.task('processhtml', ['clean'], function () {
  return gulp.src('./'+sdir+'/*.html')
    .pipe(processhtml())
    .pipe(gulp.dest('./'+ddir+'/'));
});

gulp.task('default', function() {
    gulp.start(
      'move',
      'concat-minify-css',
      'concat-uglify-script-index',
      'processhtml');
});

关于processhtml大家用的可能较少,这里简单地介绍一下。

例如我们有这样一个文件:

<!Doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>test</title>
    <link rel="stylesheet" type="text/css" href="css/base.css">
    <link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
    <div id="main"></div>
    <script src="js/jquery.js"></script>
    <script src="js/main.js"></script>
</body>
</html>

最终我们希望代码压缩合并后,输出这样的文件:

<!Doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>test</title>
    <link rel="stylesheet" type="text/css" href="css/index.css">
</head>
<body>
    <div id="main"></div>
    <script src="js/index.js"></script>
</body>
</html>

那么如何做呢,这里就要用到processhtml了,在需要替换的地方加个特殊标记,然后用processhtml进行替换处理,标记如下:

<!Doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>test</title>
    <!--build:css css/index.css -->
    <link rel="stylesheet" type="text/css" href="css/base.css">
    <link rel="stylesheet" type="text/css" href="css/style.css">
    <!--/build-->
</head>
<body>
    <div id="main"></div>
    <!--build:js js/index.js-->
    <script src="js/jquery.js"></script>
    <script src="js/main.js"></script>
    <!--/build -->
</body>
</html>

这个工具还是挺好用的。

免责声明:文章转载自《用gulp清除、移动、压缩、合并、替换代码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Delphi写DLL要注意的问题 (转)Mybatis标签及使用1下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WKWebView和JS交互

 // 1.WKWebView的配置        WKUserContentController *userContentController = [[WKUserContentController alloc] init];        [userContentController addScriptMessageHandler:self name:...

CSS技巧:文本换行及溢出隐藏

文字溢出隐藏 单行文本 200px; // 需要设置这个固定宽度 overflow: hidden; text-overflow: ellipsis; white-space: nowrap; 多行文本 display: -webkit-box; // 将对象作为弹性伸缩盒子模型显示 word-break: break-all; -webkit-box-...

js布尔类型

<!--禁用--> <inputtype="text" disabled> <!--只读--> <inputtype="text" readonly> <!--多选--> <inputtype="file"multiple> <!--默认选中--> <inputty...

(转)js jquery.qrcode生成二维码 带logo 支持中文

场景:公司最最近在开发二维码支付业务,所以需要做一个html5中的二维码生成和部署! 前天用js生成二维码,节省服务器资源及带宽 原版jquery.qrcode不能生成logo,本文采用的是修改版 1 显示效果 2 页面<!DOCTYPE HTML> <html> <head> <title>生成带有l...

用js生成PDF的方案

在java里,我们常用Itext来生成pdf,在pdf文件里组合图片,文字,画表格,画线等操作,还会遇到中文支持的问题。 那好,现在想直接在web前端就生成pdf怎么办,目前有以下几个解决方案 1:JSPDF.js 这个库支持不同类型的PDF文件格式,包括:文本,数字,图形,图片,同时你可以自由的编辑标题或者其它类型元素。 还支持互动的内容制作,例如,你可...

前端框架Vue自学之Vue CLI(五)

终极目标:掌握和使用Vue(全家桶:Core+Vue-router+Vuex) 本博客目的:记录Vue学习的进度和心得(Vue CLI) 内容:学习和使用Vue CLI2 和 Vue CLI3。如果了解webpack如何一步步配置的,建议可以先看我的前一个博客:前端框架Vue自学之webpack(四)。 正文: Vue CLI 一、Vue CLI 1、前言...