使用Gulp定制前端开发环境
1.安装package.json中依赖了的组件
npm install
2.来到本地路径,创建工程配置文件
npm init
3.本地安装gulp
npm install gulp --save-dev
4.复用功能的插件
npm install gulp-file-include --save-dev
5.合并文件的插件
npm install gulp-concat --save-dev
6.压缩css文件的插件
npm install gulp-cssmin --save-dev
7.安装服务的插件
npm install gulp-connect --save-dev
8.自动打开浏览器的插件
npm install gulp-open --save-dev
9.配置 gulpfile.js
var gulp = require('gulp'), // 引入gulp
fileinclude = require('gulp-file-include'), // 复用功能
concat = require('gulp-concat'), // 合并
cssmin = require('gulp-cssmin'), // 压缩
connect = require('gulp-connect'), // 安装服务
gulpopen = require('gulp-open'), // 自动打开浏览器
os = require('os') // 用于检测环境,nodejs内置组件
// 运行环境的检测 处理兼容问题
var browser = os.platform() === 'linux' ? 'google-chrome' : (
os.platform() === 'darwin' ? 'google chrome' : (
os.platform() === 'win32' ? 'chrome' : 'chrome'
)
)
// 合并HTML
gulp.task('fileinclude',function(done) {
gulp.src('src/views/*.html')
.pipe(fileinclude({
prefix: '@@',
basepath: '@file'
}))
.pipe(gulp.dest('dist/views'))
.on('end',done)
})
// 合并、压缩CSS
gulp.task('cssmin',function(done){ // 定义任务
gulp.src(['src/css/*.css']) // 找对象
.pipe(concat('style.min.css')) // pipe管道
.pipe(cssmin())
.pipe(gulp.dest('dist/css/'))
.on('end',done)
})
// 拷贝图片
gulp.task('copy:images',function(done){
gulp.src(['src/images/*'])
.pipe(gulp.dest('dist/images'))
.on('end',done)
})
// 配置路径
var host = {
path: 'dist/',
port: 8090,
index: 'qzgcs.html'
}
// 运行web服务器
gulp.task('connect',function() {
connect.server({
root: host.path,
port: host.port,
livereload: true // 热更新
})
})
// 监控文件变化
gulp.task('watch',function(done){
gulp.watch('src/**/*',['cssmin','fileinclude'])
.on('end',done)
})
// 自动打开浏览器
gulp.task('open',function(done){
gulp.src('')
.pipe(gulpopen({
app: browser,
uri: 'http://localhost:8090/views/' + host.index
}))
.on('end',done)
})
// 任务组装
gulp.task('default',['fileinclude','cssmin','copy:images'],function(){ // 默认任务 任务集合(没有先后顺序) 回调函数
// body...
})
// 开发模式
gulp.task('dev',['fileinclude','cssmin','copy:images','connect','watch','open'])
// npm i 安装package.json上的所有 dev
// set 查看环境变量
// set | findstr "NVM"
// on 事件监听机制
结果:$ gulp dev

运行前:

运行后:

使用Gulp定制前端开发环境的更多相关文章
- gulp构建前端开发环境
1.gulp环境的安装 首先确保你已经正确安装了nodejs环境.然后以全局方式安装gulp: npm install -g gulp 2.建立文件夹 mkdir item 3.初始化项目: npm ...
- 基于gulp编写的一个简单实用的前端开发环境好了,安装完Gulp后,接下来是你大展身手的时候了,在你自己的电脑上面随便哪个地方建一个目录,打开命令行,然后进入创建好的目录里面,开始撸代码,关于生成的json文件请点击这里https://docs.npmjs.com/files/package.json,打开的速度看你的网速了注意:以下是为了演示 ,我建的一个目录结构,你自己可以根据项目需求自己建目
自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...
- 基于 Express+Gulp+BrowserSync 搭建一套高性能的前端开发环境
基于 Express+Gulp+BrowserSync 搭建一套高性能的前端开发环境 Express 是比较经典的,也是最常用的 Nodejs Web框架. 一.Express 快速构建一个web应用 ...
- 基于gulp编写的一个简单实用的前端开发环境
自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...
- 用grunt搭建自动化的web前端开发环境实战教程(详细步骤)
用grunt搭建自动化的web前端开发环境实战教程(详细步骤) jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用!前端自动化, ...
- angular学习笔记(2)- 前端开发环境
angular1学习笔记(2)- 前端开发环境 1.代码编辑工具 2.断点调试工具 3.版本管理工具 4.代码合并和混淆工具 5.依赖管理工具 6.单元测试工具 7.集成测试工具 常见的前端开发工具 ...
- 【Yeoman】热部署web前端开发环境
本文来自 “简时空”:<[Yeoman]热部署web前端开发环境>(自动同步导入到博客园) 1.序言 记得去年的暑假看RequireJS的时候,曾少不更事般地惊为前端利器,写了<Sp ...
- 【前端福利】用grunt搭建自动化的web前端开发环境-完整教程
jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用! 1. 前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过 ...
- 转:【前端福利】用grunt搭建自动化的web前端开发环境-完整教程
原文地址:http://blog.csdn.net/wangfupeng1988/article/details/46418203 jQuery在使用grunt,bootstrap在使用grunt,百 ...
随机推荐
- wav格式
转自: http://www.cnblogs.com/tiandsp/archive/2012/10/17/2728585.html 起始地址 占用空间 本地址数字的含义 00H 4byte RIFF ...
- Python学习杂记_12_函数(三)
内置函数 Python有很多内置函数,以下这些是常用且必须要掌握的: 强制类型转换: bool() # 把一个对象转换成布尔类型 int() # 整形 float() # 小数 str() # 字符 ...
- python每日一类(5):itertools模块
itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生成器和生成器表达式)的函数联合使用. ch ...
- django自定义signal的发送和接收样例
想在项目中用上,就实习一下. # coding:utf8 from django.dispatch import Signal from django.dispatch import receiver ...
- (分享别人的一篇好文章,来自jackson0714)30分钟全面解析-SQL事务+隔离级别+阻塞+死锁()
30分钟全面解析-SQL事务+隔离级别+阻塞+死锁 阅读目录 概述: 一.事务 二.锁 三.阻塞 四.隔离级别 五.死锁 以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQ ...
- Wannafly挑战赛10 D 小H的询问(线段树)
题目链接 Problem D 这个题类似 SPOJ GSS3 做过那个题之后其实就可以秒掉这题了. 考虑当前线段树维护的结点 在那道题的基础上,这个题要多维护几个东西,大概就是左端点的奇偶性,右端点 ...
- Python_Tips[4] -> and 和 or 的计算原则
and和or / and & or 对于and和or,可以连接多个值,其分别遵循原则: 全是 And: 返回第一个遇到的无效值,若全有效,返回最后一个有效值 全是 Or: 返回第一个遇到的有效 ...
- RandomeAccessFile - read write
RandomeAccessFile use write replace writeBytes public class RandomAccessFileTest { public static voi ...
- Redis数据类型、两种模型、事务、内部命令
1.redis数据类型 a.字符串,使用场景:常规key-value缓存应用 set name lixiang get name append name 123 # 字符串追加 mset key va ...
- Spring 依赖注入(控制反转)介绍
耦合性是软件工程中的一个重要概念.对象之间的耦合性就是对象之间的依赖性.对象之间的耦合越高,维护成本越高.因此对象的设计应使类和构件之间的耦合最小. spring Ioc思想 控制翻转也就是sprin ...