gulp的安装与使用【附配置代码】
1.配置 下载安装node.js
node -v //检查nodejs版本
npm install -g cnpm --registry=https://registry.npm.taobao.org //安装淘宝镜像使用cnpm
cnpm install gulp -g gulp -v //查询本地是否安装过了
cnpm install gulp@3.9. --save-dev
cnpm init -y //直接自动创建package.json,无需重复enter
{
"name": "teach",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Elias",
"license": "ISC",
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-preset-es2015": "^6.24.1",
"gulp": "^4.0.2",
"gulp-babel": "^7.0.1",
"gulp-clean-css": "^4.0.0",
"gulp-concat": "^2.6.1",
"gulp-connect": "^5.7.0",
"gulp-rename": "^1.4.0",
"gulp-sass": "^4.0.2",
"gulp-sourcemaps": "^2.6.5",
"gulp-uglify": "^3.0.1"
},
"dependencies": {}
}
cnpm install gulp-sass --save-dev
cnpm i
//gulp的配置文件
var {watch,src,task,dest,connect} = require("gulp");//加载gulp模块
var connect = require("gulp-connect");//服务器模块
var sass = require("gulp-sass");//将sass文件转换成css文件的模块
var sourcemaps = require('gulp-sourcemaps');//让编译后的文件和源文件的关联的模块
var cleanCss=require("gulp-clean-css");//压缩css
var concat = require("gulp-concat");//合并js
var uglify = require("gulp-uglify");//压缩js
var rename = require("gulp-rename");//重命名
var babel = require("gulp-babel");//es6转es5
//调用gulp的task方法创建任务
//复制根目录下所有的HTML文件到dist文件夹 function copyIndex(){
return src("*.html")
.pipe(dest("dist"))
.pipe(connect.reload());
}
//复制根目录img文件夹下png、jpg、gif、jpeg格式的文件到dist文件夹下的img文件夹
function copyImg(){
return src("img/*.{png,jpg,gif,jpeg}")
.pipe(dest("dist/img"));
}
//复制xml、json到dist/data
function copyData(){
return src(["xml/*.xml","json/*.json"])
.pipe(dest("dist/data"));
}
//复制并压缩css文件到dist/css文件夹
function copyCss(){
return src("css/*.css")
.pipe(cleanCss())
.pipe(dest("dist/css"))
.pipe(connect.reload());
}
//将scss文件转换为css并在压缩后粘贴到dist/css文件夹
function copySass(){
return src("scss/*.scss")
.pipe(sourcemaps.init())
.pipe(sass({outputStyle: 'compressed'}))
.pipe(sourcemaps.write())
.pipe(dest("dist/css")).pipe(connect.reload());
}
//压缩具体文件并重命名后到粘贴到具体目录
function doUglify(){
return src("jquery-1.11.0.js")
.pipe(uglify())
.pipe(rename("jquery.min.js"))
.pipe(desk("dist"))
}
//合并js文件并压缩重命名到指定目录
function doConcat(){
return src(["a.js","js/b.js"])
.pipe(concat("mix.js"))
.pipe(dest("dist/js"))
.pipe(uglify())
.pipe(rename("mix.min.js"))
.pipe(dest("dist/js"));
}
//将js文件从es6转换为es5并压缩
function doBabel(){
return src("js/*.js")
.pipe(babel({presets:["es2015"]}))
.pipe(uglify())
.pipe(dest("dist/js"))
.pipe(connect.reload())
}
//开启服务器
function doServer(){
return connect.server({
root:'dist',
livereload:true
});
} //监听,下面文件夹中的文件稍有异动便执行后面的程序
function doWatch(){
watch("*.html",copyIndex);
watch("scss/*.scss",copySass);
watch("css/*.css",copyCss);
watch("js/*.js",doBabel);
watch("img/*.{png,jpg,gif,jpeg}",copyImg);
} //运行默认执行程序,此处默认执行服务器和监听两个程序
exports.default=function(){
doServer();
doWatch();
}
8.运行gulp
gulp
cnpm install babel-cli babel-preset-es2015 --save-dev
也可能是最新插件版本不稳定造成的,检查安装插件版本号代码为
cnpm view gulp-babel versions
nondejs
nodemon插件
每次修改nodejs代码都需要重启服务器,可以使用插件nodemon来解决全局安装此插件,每次修改代码之后就不需要手动重启
cheerio插件
cheerio是jquery核心功能的一个快速灵活而又简洁的实现,主要是为了用在服务器端需要对DOM进行操作的地方,项目目录安装
express插件
通过express脚手架可以轻松的搭建一个平台。个人偏好ejs引擎,安装方式为 全局安装express,项目目录express --ejs
json server插件
全局安装json server,通过json-server --watch **.json命令使json文件运行在服务器
gulp的安装与使用【附配置代码】的更多相关文章
- Eclipse4.5在线安装Aptana插件及配置代码提示教程
一.Aptana插件官网地址 我在网上试过登陆到aptana官网后点击下载,选择下载eclipse插件版,然后页面给出一串地址:http://download.aptana.com/s ...
- 【gulp】Gulp的安装和配置 及 系列插件
注意:要安装俩次gulp(全局和本地):全局安装gulp是为了执行gulp任务,本地安装gulp则是为了调用gulp插件的功能. 之前由大牛帮忙配置的gulp来用.今天时间充裕,就和小伙伴一起动手配置 ...
- gulp的安装和配置
gulp的安装和使用方法 1先是有node为前提的, 2安装淘宝镜像 2.1因为很多npm包都是国外的,所以安装起来很慢,所以我们可以利用淘宝的镜像服务器来进行安装后续的包,速度和成功率会高很多. ...
- CentOS7服务器中apache、php7以及mysql5.7的安装配置代码
CentOS7服务器中apache.php7以及mysql5.7的配置代码如下所示: yum upgradeyum install net-tools 安装apache (http://m.86822 ...
- Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】
http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...
- JDK安装、java环境配置
JDK是Java语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库. JRE(Java ...
- 使用gulp和bable实现实时编译ES6代码
这篇文章最初发表在我自己折腾的博客站点上:使用gulp和bable实现实时编译ES6代码,该博客用了一位前辈开源的源码,基于thinkjs和vuejs开发,欢迎大家来逛逛. 问题描述> 项目开发 ...
- 第210天:node、nvm、npm和gulp的安装和使用详解
一.node 1.什么是node? 它不是JS文件,也不是JS框架,而是Server side JavaScript runtime,当服务端的一个JS文件运行时,会被NODE拦截,在NODE中运行J ...
- 古语云:工欲善其事必先利其器 --> 最新、最全的 IntelliJ IDEA(2018.3.3) 的介绍、安装、破解、配置与使用
原文:古语云:工欲善其事必先利其器 --> 最新.最全的 IntelliJ IDEA(2018.3.3) 的介绍.安装.破解.配置与使用 一.IntelliJ IDEA 介绍 -> Ecl ...
随机推荐
- keras入门
自己要搞深度学习,正好手上有本keras之父写的深度学习书,于是就从keras入手吧.看了一个电影的二分类问题,确实很简单,可以熟悉深度学习的流程.首先熟悉了结果keras的模块,如model,Seq ...
- hdu 4486 Pen Counts
Pen Counts Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- JBPM工作流(四)——管理流程定义
概念: ProcessDefinition,流程定义:一个流程的步骤说明,如一个请假流程.报销流程.是一个规则. ProcessDefinition,流程定义对象,是解析.jpdl.xml文件得到流程 ...
- js监听手机端点击物理返回键或js监听pc端点击浏览器返回键
之前在项目中遇到一个问题,就是在微信网页上面本来是有返回按钮的,但是大多数人都为了方便,会使用安卓手机自带的物理返回键,这个返回键按下后,就会按照你浏览器的栈存储的路径来一层一层返回,就不执行你页面上 ...
- oracle忘记密码用户名被锁定_解决方案
本方案参考http://www.cnblogs.com/iosundersunshine/p/5313174.html 解决方案(window): 进入cmd命令 按照图上五步,即可 1,输入 ech ...
- Phpstorm 2018及2017.3.2激活码(DataGrip WebStorm 激活码)
PhpStrom的下载地址:https://www.jetbrains.com/phpstorm/ 2018适应 最新版PhpStorm 2018正式版改进了PHP 7支持,改进代码完成功能. 直接用 ...
- H5选择颜色-前端颜色选择器
开发一年多了,一直用angular2框架,框架虽然能大大减少程序员的工作量,但我还是更喜欢用原生的技术写代码. 原生的就像内功心法,框架是招式,招式虽然实用,但是想成为高手还是得有内功修养. 不多说, ...
- Nginx负载均衡后端健康检查
参考文档:https://www.cnblogs.com/kevingrace/p/6685698.html 本次使用第三方模块nginx_upstream_check_module的,要使用这个第三 ...
- 【托业】【新东方托业全真模拟】TEST09~10-----P5~6
at no time 绝不,从不 takeover 收购 startup n.启动; 新兴公司(尤指新兴网络公司); 新兴公司,新开张的企业; specific具体的,特定的:factual 事实的, ...
- mysql 目录
初识数据库 mysql 初识sql语句 mysql 操作sql语句 mysql 数据库操作 mysql 数据表操作 mysql 数据操作 mysql 权限管理 mysql内置功能之视图.触发器.事务. ...