使用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,百 ...
随机推荐
- C# datatable to list
C# DataTable 和List之间相互转换的方法 好库文章 » 软件开发 » .NET » C# 发布者:好饱 发布日期:2013-1-27 22:17:49 更新日期:2013-1-27 ...
- JavaEE中Filter实现用户登录拦截
实现思路是编写过滤器,如果用户登录之后session中会存一个user.如果未登录就为null,就可以通过过滤器将用户重定向到登陆页面,让用户进行登陆,当然过滤器得判断用户访问的如果是登陆请求需要放行 ...
- 【原创】Linux环境下的图形系统和AMD R600显卡编程(10)——R600显卡的3D引擎编程
3D图形处理流水线需要流经多个硬件单元才能得到最后的渲染结果,流水线上的所有的硬件单元必须被正确编程,才能得到正确的结果. 总体上看,从图形处理流水线的源头开始,需要准备好vertex和index,在 ...
- [Oracle] Transporting Tablespace
Transporting Tablespace Between Database [测试目的] 利用Oracle TTS(transport tablespace)特性实现表空间合并 [主要步骤] 确 ...
- Java遍历list集合的4种方法
list集合的遍历4种方法: package com.sort; import java.util.ArrayList; import java.util.Iterator; import java. ...
- FileReader&FileWriter
FileReader public static void main(String[] args) { //创建文件对象指定要读取的文件路径 File file=new File("d:\\ ...
- Flex与51单片机socket通信 策略问题
直接把<cross-domain-policy> <allow-access-from domain="*" to-ports="*"/> ...
- 第二部分:Spring中配置mongodb
一.需要引用的jar包 1.spring-data-mongodb-1.9.4.RELEASE.jar 2.spring-data-commons-1.12.11.RELEASE.jar 3.mong ...
- 【原创】SSIS-WMI 数据读取器任务:监控物理磁盘空间
1.背景 随着时间的推移,我们的DW会越来越大,也就意味着磁盘空间会越来越小,那如果哪一天留意不当,就会造成磁盘空间的不足而导致ETL失败,最终影响我们的系统的数据正确性和使用,更严重的有可能导致物理 ...
- HashSet、LinkedHashSet和TreeSet
关键技术: HashSet采用散列函数对元素进行排序,是专门为快速查询而设计的.存入HashSet的对象必须定义hashCode方法. TreeSet采用红黑树的数据结构进行排序元素,使用它可以从Se ...