使用Gulp压缩CSS/JS

一、安装

1.安装gulp

npm install -g gulp

2.检查gulp 版本

gulp -v

3.在项目文件夹下安装gulp

npm install --save-dev gulp

二、压缩JS

1.安装gulp-uglify模块

npm install gulp-uglify

2.在项目根目录创建gulpfile.js文件

3.在gulpfile.js文件中写入代码

  1. // 获取 gulp
  2. var gulp = require('gulp');
  3. // 获取 uglify 模块(用于压缩 JS)
  4. var uglify = require('gulp-uglify');
  5. // 压缩 js 文件
  6. // 在命令行使用 gulp script 启动此任务
  7. gulp.task('jscompress', function() {
  8. // 1. 找到文件
  9. return gulp.src('js/1.js')
  10. // 2. 压缩文件
  11. .pipe(uglify())
  12. // 3. 另存压缩后的文件
  13. .pipe(gulp.dest('dist/js'));
  14. });

4.命令行中切换到gulpfile.js所在的目录,执行如下命令开始压缩

gulp script

5.在gulpfile.js中添加自动监视任务

  1. // 在命令行使用 gulp auto 启动此任务
  2. gulp.task('auto', function () {
  3. // 监听文件修改,当文件被修改则执行 script 任务
  4. gulp.watch('js/1.js', ['jscompress']);
  5. });

6.在gulpfile.js中设置默认任务(即命令行中输入gulp执行的任务)

  1. // 使用 gulp.task('default') 定义默认任务
  2. // 在命令行使用 gulp 启动 script 任务和 auto 任务
  3. gulp.task('default', ['auto']);

三、压缩CSS

1.安装gulp-clean-css模块

npm install gulp-clean-css

2.在gulpfile.js文件中添加相应任务

  1. // 获取 cleancss 模块(用于压缩 CSS)
  2. var cleanCSS = require('gulp-clean-css');
  3. // 压缩 css 文件
  4. // 在命令行使用 gulp csscompress 启动此任务
  5. gulp.task('csscompress', function() {
  6. // 1. 找到文件
  7. return gulp.src('css/my.css')
  8. // 2. 压缩文件
  9. .pipe(cleanCSS())
  10. // 3. 另存压缩后的文件
  11. .pipe(gulp.dest('dist/css'));
  12. });

3.修改添加对应的自动监视任务

  1. // 在命令行使用 gulp auto 启动此任务
  2. gulp.task('auto', function () {
  3. // 监听文件修改,当文件被修改则执行 script 任务
  4. gulp.watch('js/1.js', ['jscompress']);
  5. gulp.watch('css/my.css', ['csscompress']);
  6. });

四、重命名文件

1.安装gulp-rename模块

npm install gulp-rename

2.修改gulpfile.js内代码

  1. // 获取 gulp
  2. var gulp = require('gulp');
  3. // 获取 uglify 模块(用于压缩 JS)
  4. var uglify = require('gulp-uglify');
  5. // 获取 cleancss 模块(用于压缩 CSS)
  6. var cleanCSS = require('gulp-clean-css');
  7. var rename = require("gulp-rename");
  8. // 压缩 js 文件
  9. // 在命令行使用 gulp jscompress 启动此任务
  10. gulp.task('jscompress', function() {
  11. // 1. 找到文件
  12. return gulp.src('js/1.js')
  13. .pipe(rename({suffix: '.min'}))
  14. // 2. 压缩文件
  15. .pipe(uglify())
  16. // 3. 另存压缩后的文件
  17. .pipe(gulp.dest('dist/js'));
  18. });
  19. // 压缩 css 文件
  20. // 在命令行使用 gulp csscompress 启动此任务
  21. gulp.task('csscompress', function() {
  22. // 1. 找到文件
  23. return gulp.src('css/my.css')
  24. .pipe(rename({suffix: '.min'}))
  25. // 2. 压缩文件
  26. .pipe(cleanCSS())
  27. // 3. 另存压缩后的文件
  28. .pipe(gulp.dest('dist/css'));
  29. });
  30. // 在命令行使用 gulp auto 启动此任务
  31. gulp.task('auto', function () {
  32. // 监听文件修改,当文件被修改则执行 script 任务
  33. gulp.watch('js/1.js', ['jscompress']);
  34. gulp.watch('css/my.css', ['csscompress']);
  35. });
  36. // 使用 gulp.task('default') 定义默认任务
  37. // 在命令行使用 gulp 启动 script 任务和 auto 任务
  38. gulp.task('default', ['auto']);

参考资料:
https://github.com/nimojs/gulp-book
http://www.cnblogs.com/Tzhibin/p/4318457.html

转载于:https://www.cnblogs.com/enginex/p/7147728.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android活动开始,android – 点击谷歌地图标记infoWindow开始活动

我建议使用HashMap或类似的东西.当您遍历对象列表并为它们创建标记时,还要将标记添加到列表中,使用对象的ID作为键,将标记作为值:private HashMap markerMap new HashMap();…for(MarkerObject obj : this.markerObjects){//If the marker isnt already being disp…

Hamcrest包含匹配器

与Hamcrest 1.2相比 ,针对Matchers类的Hamcrest 1.3 Javadoc文档为该类的几种方法添加了更多文档。 例如,四个重载的contains方法具有更具描述性的Javadoc文档,如下面所示的两个比较屏幕快照所示。 尽管仅通过尝试就可以弄清楚“包含”匹配器…

华为cor—al10_cor al10是华为什么型号 cor al10是华为啥型号

cor al10是华为荣耀Play。外观方面,荣耀Play提供有星云紫,极光蓝,幻夜黑三种基础配色,以及幻夜黑与魅焰红的酷玩版配色;拍照方面,荣耀Play具有1600万AI双摄像头,前置摄像头为1600万像素&#xf…

函数 (四) 迭代器和生成器

一 迭代器 一 迭代的概念 #迭代器即迭代的工具,那什么是迭代呢?#迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而不是迭代print(>) l[1,2,3]…

进阶-JMS 知识梳理

JMS 一、 概述与介绍 ActiveMQ 是Apache出品,最流行的、功能强大的即时通讯和集成模式的开源服务器。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。提供客户端支持跨语言和协议,带有易于在充分支持JMS 1.1和1.4使用J2EE企业集成模式…

android蓝牙pair,Android向更多蓝牙设备开放Fast Pair功能 配对更轻松了

原标题:Android向更多蓝牙设备开放Fast Pair功能 配对更轻松了 来源:cnBeta.COM蓝牙是一项应用非常广泛的无线技术,在无线音频配件、智能手表和智能家电中都广泛使用。不过蓝牙设备的配对体验并不优秀,而且无法实现跨平台的一致性…

用CSS让DIV上下左右居中的方法

例如 一个父div(w:100%;h:400px)中有一个子div(w:100px;100px;)。让其上下左右居中。 方法一(varticle-align) 理念 利用表格单元格的居中属性。 步骤 父div外层配置一个div,同时设置为表格元素 (display: table),宽度为100%父…

功能性Java集合

如今,在功能上大肆宣传,因此至少在Java集合方面,我将简要介绍一下其中的功能。 我个人喜欢标准 集合API,但在某些情况下可能会很尴尬并添加其他详细信息。 在Java 8的更高版本中,这应该不是问题。 在那里,…

python绘制帕累托图

python绘制帕累托图代码 1 import pandas as pd2 import matplotlib.pyplot as plt3 plt.rcParams[font.sans-serif][SimHei]#表示可以显示中文4 plt.rcParams[axes.unicode_minus]False#表示可以正常显示正负号5 datapd.read_csv(catering_dish_profit.csv,index_coltype)6 pr…

currentStyle、getComputedStyle 获取样式

style.height 获取的是行间的样式 currentStyle.height、getComputedStyle(elem,null).height 获取的是 div 的 content 的宽高&#xff0c; clientHeight 获取的是 contentpadding&#xff0c; offsetHeight 获取的是contentpaddingborder。 <script> window.onload…

html5 测评游戏,暗黑之王评测:HTML5游戏铸就最华丽ARPG冒险

由白鹭时代(Egret Technology)与比悦科技联手推出的重度大型HTML5游戏《暗黑之王》&#xff0c;一款典型的ARPG手游&#xff0c;其HTML5版本推出以来&#xff0c;获得了来自业界、玩家和媒体的大量关注。其丰富的游戏内容和玩法&#xff0c;加上卓越的游戏性能表现&#xff0c;…

搞定flex布局

这几种方式的搭配使用可以轻松搞定 PC 端页面的常见需求&#xff0c;比如实现水平居中可以使用 margin: 0 auto&#xff0c;实现水平垂直同时居中可以如下设置&#xff1a;.dad {position: relative; } .son {position: absolute;margin: auto;top: 0;right: 0;bottom: 0;left…

Java基础5一数组的常见应用算法

常用算法 1.冒泡排序: 原理&#xff1a;比较两个相邻的元素&#xff0c;将值大的元素交换至右端 示例: public static void bubbleSort(int[] a) {int n a.length;//总共进行n-1轮的比较for (int i 1; i < n; i) {for (int j 0; j < n - i; j) {if (a[j] > a[j 1]…

使用Xtend构建Vaadin UI

今天&#xff0c;我决定向Xtend打个招呼。 我希望学习一些新的编程语言。 选择一个标准的清单并不多。 它必须是在JVM上运行的编程语言&#xff0c; 如果我不需要学习用于建筑应用的全新生态系统&#xff0c;那就太好了。 我已经检查了几个选项。 JVM的编程语言列表已不多了…

python 浏览器显示本地文件夹_浏览器读取本地文件

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云文件存储NAS是一个可共享访问&#xf…

p15页

给你一个n*n的01矩阵&#xff0c;只能够将0变成1&#xff0c;使得每个元素上下左右之和均是偶数&#xff0c; 比如 0 0 0 0 1 0 1 0 0>>>>1 0 1 0 0 0 0 1 0 一个转变了3步 多实例T 然后一个n&#xff08;n<15&#xff09; 表示n*n的矩阵 …

html 登陆sql server,jsp实现注册与登录页面+sqlsever2008

//index.jspString path request.getContextPath();String basePath request.getScheme()"://"request.getServerName()":"request.getServerPort()path"/";%>登陆用户登陆用户名&#xff1a;密 码:注册新用户//Logon.jspString path req…

百度前端学院-基础学院-第四课

今天是第四天&#xff0c;进度可以&#xff0c;表扬一下自己。 今天的课程目标是&#xff1a;掌握 CSS 稍微复杂的一些选择器&#xff0c;还有背景&#xff0c;边框等一些 CSS 样式属性。 CSS背景&#xff1a; 背景色&#xff1a;background-color:gray; 背景图&#xff1a…

JUnit测试方法订购

直到4.10版为止的Junit都使用反射API返回的测试类中测试方法的顺序作为测试方法执行的顺序– Class.getMethods&#xff08;&#xff09; 。 引用getMethods&#xff08;&#xff09;api的Javadoc&#xff1a; 返回的数组中的元素未排序&#xff0c;并且没有任何特定顺序。 …

html中padding和margin的区别和用法与存在的bug消除

关于margin&#xff1a;在需要border外侧添加距离时。空白处不需要背景时。相连的两个部分的地方需要加外边的边距时使用。 关于padding&#xff1a;在需要border内侧添加距离时。空白处需要背景时。相连的两个部分的地方需要加内部的边距时使用。 IE6中双边距Bug&#xff1a; …