gulp(gulpfile.js)配置文件

  1 /*
  2 参考代码网址:
  3 http://www.ido321.com/1622.html
  4 http://colobu.com/2014/11/17/gulp-plugins-introduction/#gulp-rename
  5 https://github.com/nimojs/gulp-book
  6  */
  7 // 获取 gulp
  8 var gulp = require(‘gulp‘),
  9     // js 压缩插件 (用于压缩 JS)
 10     uglify = require(‘gulp-uglify‘),
 11     // 压缩css插件(cssnano将取代gulp-minify-css)
 12     minifyCSS = require(‘gulp-minify-css‘),
 13     cssnano = require(‘gulp-cssnano‘),
 14     // 获取 gulp-imagemin 模块
 15     imagemin = require(‘gulp-imagemin‘),
 16     // 重命名 插件
 17     rename = require(‘gulp-rename‘),
 18     // 压缩html插件
 19     htmlmin = require(‘gulp-htmlmin‘),
 20     // 合并文件
 21     concat = require("gulp-concat"),
 22     // html 文件对合并文件后的替换处理插件
 23     htmlReplace = require("gulp-html-replace"),
 24     // 复制文件(文件拷贝)
 25     copy = require(‘copy‘);
 26
 27 // 版本号
 28 var APP_VERSION = ‘v.1.0‘;
 29
 30
 31 // 压缩 js 文件
 32 // 在命令行使用 gulp script 启动此任务
 33 gulp.task(‘script‘, function() {
 34     // 1. 找到文件
 35     gulp.src(‘js/*.js‘)
 36     // 2. 压缩文件
 37         .pipe(uglify())
 38     // new: 压缩前修改压缩后新文件名字
 39         .pipe(rename( function(path){
 40           path.basename += "_" + APP_VERSION;
 41         } ) )
 42     // 3. 另存压缩后的文件
 43         .pipe(gulp.dest(‘dist/js‘))
 44 });
 45
 46 // 压缩 css 文件
 47 // 在命令行使用 gulp css 启动此任务
 48 gulp.task(‘css‘, function () {
 49     // 1. 找到文件
 50     gulp.src(‘css/*.css‘)
 51     // 2. 压缩文件
 52         .pipe(minifyCSS())
 53     // 3. 另存为压缩文件
 54         .pipe(gulp.dest(‘dist/css‘))
 55 });
 56
 57 // 压缩图片任务
 58 // 在命令行输入 gulp images 启动此任务
 59 gulp.task(‘images‘, function () {
 60     // 1. 找到图片
 61     gulp.src(‘images/*.*‘)
 62     // 2. 压缩图片
 63         .pipe(imagemin({
 64             progressive: true
 65         }))
 66     // 3. 另存图片
 67         .pipe(gulp.dest(‘dist/images‘))
 68 });
 69
 70 // 合并js 任务(合并压缩成功后的 js文件)
 71 gulp.task(‘concat‘, function () {
 72     gulp.src(‘dist/js/*.js‘)  //要合并的文件
 73     .pipe( concat(‘all.js‘) )  // 合并匹配到的js文件并命名为 "all.js"
 74     .pipe( gulp.dest(‘dist/js‘) );
 75 });
 76
 77 // 解决 gulp 合并文件后, html调用代码对应替换
 78 gulp.task(‘htmlreplace‘, function(){
 79   gulp.src(‘canvas_test.html‘)
 80       .pipe( htmlReplace({‘js‘: ‘js/all.js‘}) )
 81       .pipe( gulp.dest(‘dist/‘) );
 82 });
 83 // 压缩html 任务
 84 gulp.task(‘htmlmin‘, function () {
 85     var options = {
 86         collapseWhitespace: true,//压缩HTML
 87         //省略布尔属性的值 <input checked="true"/> ==> <input />
 88         collapseBooleanAttributes: false,
 89         //删除所有空格作属性值 <input id="" /> ==> <input />
 90         removeEmptyAttributes: true,
 91         //删除<script>的type="text/javascript"
 92         removeScriptTypeAttributes: true,
 93         //删除<style>和<link>的type="text/css"
 94         removeStyleLinkTypeAttributes: true,
 95         minifyJS: true,//压缩页面JS
 96         minifyCSS: true//压缩页面CSS
 97     };
 98     gulp.src(‘*.html‘)
 99         .pipe(htmlmin(options))
100         .pipe(gulp.dest(‘dist‘));
101 });
102
103 // 清除文件任务
104 gulp.task(‘clean‘, function(cb){
105    del([‘dist/*‘]);
106    cb();
107 });
108
109 // 复制任务(连续复制多个文件时,最好加上回调函数)
110 gulp.task(‘copy‘, function(cb){
111     copy([‘copy_file2.txt‘, ‘copy_file.txt‘], ‘dist/‘);
112     cb();
113 });
114
115
116 /*************************************************************
117  *                         组合任务
118  ************************************************************/
119
120 // js 压缩合并任务
121 gulp.task(‘ugconjs‘, function(){
122     // 1. 找到文件
123     gulp.src([‘js/concat_base.js‘, ‘js/uglify_utils.js‘])
124     // 2. 压缩文件
125         .pipe(uglify())
126     // 3. 合并成一个文件
127         .pipe( concat(‘all.js‘) )
128     // 4. 改名
129         .pipe(rename( function(path){
130           path.basename += "_" + APP_VERSION;
131         } ) )
132     // 5. 另存压缩后的文件
133         .pipe(gulp.dest(‘dist/js‘))
134 });
135
136 // 组合任务: 先替换html再压缩
137 gulp.task(‘htmlcomp‘, function(){
138   var options = {
139     collapseWhitespace: true,//压缩HTML
140     //省略布尔属性的值 <input checked="true"/> ==> <input />
141     collapseBooleanAttributes: false,
142     //删除所有空格作属性值 <input id="" /> ==> <input />
143     removeEmptyAttributes: true,
144     //删除<script>的type="text/javascript"
145     removeScriptTypeAttributes: true,
146     //删除<style>和<link>的type="text/css"
147     removeStyleLinkTypeAttributes: true,
148     minifyJS: true,//压缩页面JS
149     minifyCSS: true//压缩页面CSS
150   };
151   gulp.src(‘canvas_test.html‘)
152       .pipe( htmlReplace({‘js‘: ‘js/all_‘ + APP_VERSION + ‘.js‘}) )
153       .pipe( htmlmin(options) )
154       .pipe( gulp.dest(‘dist/‘) );
155 });
156
157 // 默认任务
158 gulp.task(‘default‘, [‘clean‘], function(){
159     gulp.start(‘ugconjs‘, ‘htmlcomp‘, ‘copy‘, ‘css‘, ‘images‘);
160 });
161
162 /*************************************************************
163  *               本地js  html css本地压缩
164  ************************************************************/
165 // 字符串拷贝进 js/str.js 中, 然后运行 `gulp str-js`
166 gulp.task(‘str-js‘, function() {
167     gulp.src(‘js/str.js‘)
168         .pipe(uglify())
169         .pipe(gulp.dest(‘dist/js‘));
170 });
171 // 字符串拷贝进 css/str.css 中, 然后运行 `gulp str-css`
172 gulp.task(‘str-css‘, function () {
173     gulp.src(‘css/str.css‘)
174         .pipe(cssnano())
175         .pipe(gulp.dest(‘dist/css‘));
176 });
177 // 字符串拷贝进 str.html 中, 然后运行 `gulp str-html`
178 gulp.task(‘str-html‘, function () {
179     var options = {
180         collapseWhitespace: true,//压缩HTML
181         //省略布尔属性的值 <input checked="true"/> ==> <input />
182         collapseBooleanAttributes: false,
183         //删除所有空格作属性值 <input id="" /> ==> <input />
184         removeEmptyAttributes: true,
185         //删除<script>的type="text/javascript"
186         removeScriptTypeAttributes: true,
187         //删除<style>和<link>的type="text/css"
188         removeStyleLinkTypeAttributes: true,
189         minifyJS: true,//压缩页面JS
190         minifyCSS: true//压缩页面CSS
191     };
192     gulp.src(‘str.html‘)
193         .pipe(htmlmin(options))
194         .pipe(gulp.dest(‘dist‘));
195 });
时间: 2024-08-04 06:29:37

gulp(gulpfile.js)配置文件的相关文章

gulp配置文件(gulpfile.js)

需要安装的插件 "gulp": "^3.9.1","gulp-clean": "^0.3.2","gulp-concat": "^2.6.1","gulp-connect": "^5.0.0","gulp-cssmin": "^0.2.0","gulp-imagemin": "^

gulp运行及gulpfile.js配置

控制台输入,运行gulp gulp default gulpfile.js var gulp = require('gulp'), //获取gulp htmlmin = require("gulp-htmlmin"), //压缩页面javascript.css,去除页面空格.注释,删除多余属性等操作 imagemin = require("gulp-imagemin"), //压缩图片文件 cache = require('gulp-cache'), //只压缩修改

如何在修改 gulpfile.js 文件后自动重启 gulp?

gulp 非常好用,编写好 gulpfile.js 文件后,一般情况下在命令行用 gulp 就能启动开发环境,大大简化了开发流程.但是有一个问题没有解决,就是编写 gulpfile.js 文件过程中,如果这个时候 gulp 已经启动,修改 gulpfile.js 文件,进程并不会变化,我们希望 gulpfile.js 文件修改后,gulp 进程能够自动重启 我们接下去以这个脚手架 gulp-simple 为例 原始的 gulpfile.js 文件如下: const gulp = require(

使用gulp压缩js详细步骤笔记

先要安装nodejs,初始化项目配置文件package.json,根据情况输入配置参数 npm init 1 test command: 2 git repository: 3 keywords: 4 author: 5 license: (ISC) 6 About to write to E:\temp\20170429\test03\package.json: 7 8 { 9 "name": "test03", 10 "version": &

前端自动化之路之gulp,node.js

随着现在前端技术的不断发展,和各个公司对前端项目开发更新速度的要求,前端自动化越来越受到大家的重视,之前传统的前端开发方式已经越来越不能满足开发的需求了,于是各种自动化工具随之产生了.而gulp就是其中一款非常强大的工具. 1.安装node.js:由于gulp是基于node.js的.所以首先需要安装node.js,node下载地址:http://nodejs.cn/download/ 安装比较简单.安装完成之后在cmd里输入:node -v 查看安装的node版本. npm -v  查看安装的n

gulp打包js多个文件夹并压缩混淆,编译ES6语法

感觉和webpack的步骤差不多 首先安装gulp:参考上一篇 安装完之后 新建一个文件目录起名 在当前目录下打开cmd 执行:npm init 创建package.json文件 然后安装第一个插件gulp-uglify 执行: cnpm install gulp-uglify --save-dev (这里暂时都用淘宝镜像cnpm) 这时候已经可以开始压缩es5的js文件了,但是我们要编译es6语法,那就需要babel 执行: cnpm install gulp-babel --save-dev

node入门(二)——gulpfile.js初探

本文关于gulpfile.js怎么写,利于完成个性化需求.本文开发环境默认已安装node,详情参考<node入门(一)——安装>. 一.安装gulp npm install -g gulp 二.进入项目根目录,创建package.json文件 npm init 现在项目目录下新增了package.json文件,内容如下: 三.在package.json里增加devDependencies配置项,告诉node在install时要下载哪些插件模块,例如下面是要加载gulp-less插件: gulp

gulp压缩js

1.安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配置gulpfile.js -> 运行任务 2.查看nodejs的版本号 3.npm的版本号 4.定位目标 5.全局安装gulp 6.新建package.json文件 多了两个文件 7.本地安装gulp插件 8.新建gulpfile.js文件(重要) var gulp = require('gulp'), uglify = require('gulp-uglify'); gulp.task(

gulp使用外部配置文件

这很有好处,因为它使得任务很干净,并且 config.json 可以被其他的任务运行器(例如grunt)重复利用. config.json { "desktop" : { "src" : [ "dev/desktop/js/**/*.js", "!dev/desktop/js/vendor/**" ], "dest" : "build/desktop/js" }, "mobil