由于公司不同意我们使用前后端分离进行开发,硬是要我们和PHP混合在一起,所以用gulp搭建了一个简单的手脚架来用

目录结构:

主要是gulpfile.js里的内容

var gulp  = require('gulp'),
px2rem = require('gulp-px3rem'),//移动浏览器适配
sass = require('gulp-sass'),//sass转换
cssmin = require('gulp-cssmin'),//css压缩
uglify = require('gulp-uglify'),//js压缩
inline = require('gulp-inline'),//文件内联
rename = require('gulp-rename'),//重命名文件
browserSync = require('browser-sync').create(),//browser自动刷新
reload = browserSync.reload,
replace = require('gulp-batch-replace');//文件内容替换 function swallowError(error) {
// If you want details of the error in the console
console.error(error.toString()) this.emit('end')
}
//出来sass文件转换rem适配浏览器
gulp.task('sass', function() {
return gulp.src(['./src/common/css/*.scss','./src/css/*.scss'])//多文件合并成一个
.pipe(sass({outputStyle: 'compact',sourceComments:false})).on('error', swallowError)
.pipe(px2rem({
baseDpr: 2, // base device pixel ratio (default: 2)
threeVersion: false, // whether to generate 3x version (default: true)
remVersion: true, // whether to generate rem version (default: true)
remUnit: 75, // rem unit value (default: 64)
remPrecision: 6
})).on('error', swallowError)
.pipe(gulp.dest('./build/css/'))
})
//js压缩
gulp.task('uglify', function() {
return gulp.src('./src/js/**/*.js')
.pipe(uglify({
comporess : false,
preserveComments : 'license'
})).on('error', swallowError)
.pipe(gulp.dest('./build/js'))
}) //把需要的 script link 内容打包到页面里面(内联)
gulp.task('inline', function() {
gulp.src(['./pages/**/*.html'])
.pipe(inline({
js: uglify,
css: cssmin,
disabledTypes: ['svg', 'img'] // Only inline css files
}))
.pipe(gulp.dest('./dest'));
}); gulp.task('watches' ,['sass'], function() {
// 从这个项目的根目录启动服务器
browserSync.init({
server: {
baseDir: "./",
},
port: 4444,
open: "local",
online: false
});
 //监控文件变化自动刷新
gulp.watch('./src/js/**/*.js', ['uglify']).on("change", browserSync.reload);
gulp.watch('./src/css/*.scss', ['sass']).on("change", browserSync.reload);
gulp.watch('./pages/**/*.html').on("change", browserSync.reload);
}) gulp.task('default', ['sass','uglify']) //复制打包后的css到对应目录
gulp.task('cloneCss',['sass'],function(){
gulp.src(['./build/css/*.css'])
.pipe(rename(function(path){
path.basename = path.basename.replace('.debug','');
}))
.pipe( gulp.dest('dist/css/'))
})
//复制js到指定目录
gulp.task('cloneJs',function(){
gulp.src(['./src/js/**/*.js'])
.pipe( gulp.dest('dist/js/'))
})
//复制公用文件到指定目录
gulp.task('cloneCommonJs',function(){
gulp.src(['./src/common/js/*.js'])
.pipe( gulp.dest('dist/js/common/'))
})
//复制图片到对应目录
gulp.task('cloneImages',function(){
gulp.src(['./src/images/*'])
.pipe( gulp.dest('dist/images/'))
})
复制html文件到对应目录
gulp.task('cloneHtml',function(){
gulp.src(['./pages/**/*.html'])
.pipe( gulp.dest('dist/'))
})
//修改文件内的路径配置
var replaceThis = [
['../../build/css/', '../../css/'],
['../../src/js/', '../../js/'],
['../../src/common/js/', '../../js/'],
['../../src/images/','../../images/'],
['debug.css','css']
];
//执行修改文件内路径
gulp.task('replace', function() {
gulp.src('./dist/**/*.html')
.pipe(replace(replaceThis))
.pipe(gulp.dest('./dist'));
});
//打包文件给后端
gulp.task('build',['cloneCss','cloneCommonJs','cloneJs','cloneImages'], function () {
gulp.src(['./pages/**/*.html'])
.pipe(replace(replaceThis))
.pipe(gulp.dest('./dist/pages'));
});

H5gulp版非前后的分离环境的更多相关文章

  1. TensorFlow笔记-02-Windows下搭建TensorFlow环境(win版非虚拟机)

    TensorFlow笔记-02-Windows下搭建TensorFlow环境(win版非虚拟机) 本篇介绍的是在windows系统下,使用 Anaconda+PyCharm,不使用虚拟机,也不使用 L ...

  2. linux项目部署(非前后端分离crm)

    参考博客 参考博客2---部署过程 导论:看参考博客1 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收 ...

  3. 用标准版的Eclipse搭建PHP环境

    用标准版的Eclipse搭建PHP环境 ——@梁WP 摘要:用标准版的Eclipse搭建PHP环境. 一.下载Eclipse的PHP插件 百度搜索phpeclipse,看到某条结果是带有SourceF ...

  4. influxDB1.6版安装与配置(windows环境)、Jmeter+influxDB+Grafana性能监控

    influxDB1.6版安装与配置(windows环境).Jmeter+influxDB+Grafana性能监控 来源:https://blog.csdn.net/SwTesting/article/ ...

  5. PyCharm社区版+Django搭建web开发环境-2

    接上一篇:PyCharm社区版+Django搭建web开发环境-1 1. 创建好django项目并建立app应用:web 2. setting.py:配置app应用 INSTALLED_APPS = ...

  6. 提高性能,MySQL 读写分离环境搭建(一)

    这是松哥之前一个零散的笔记,整理出来分享给大伙! MySQL 读写分离在互联网项目中应该算是一个非常常见的需求了.受困于 Linux 和 MySQL 版本问题,很多人经常会搭建失败,今天松哥就给大伙举 ...

  7. Mycat分布式数据库架构解决方案--搭建MySQL读写分离环境--一主多从

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 本文主 ...

  8. Kali Linux Web渗透测试手册(第二版) - 1.0 - 渗透测试环境搭建

    一.配置KALI Linux和渗透测试环境 在这一章,我们将覆盖以下内容: 在Windows和Linux上安装VirtualBox 创建一个Kali Linux虚拟机 更新和升级Kali Linux ...

  9. 不用rustup,Windows下gnu版Rust安装与开发环境配置

    写在前面 本文介绍了在不使用rustup的情况下,在Windows上安装gnu版的Rust,并配置开发环境(VSCode + rust-analyzer,CLion + IntelliJ Rust)的 ...

随机推荐

  1. NO1:在Windows端安装SecureCRT来连接Linux

    正常情况下都不会直接在Linux服务端进行操作,实际使用服务器和工作电脑不会在同一个地方,也不允许在服务器操作. 我这里用SecureCRT 7.0来连接服务器.提供个下载,带注册机工具: http: ...

  2. Shell读取文件内容【转】

    while read wOne wTwo wThreedo    [ -z $wOne ] && continue           #测试此行内容是否为空    xxx=$wOne ...

  3. 如何解压deb文件

    有两种方法: Bash代码 1.dpkg -x xx.deb /tmp/oo 注意:/tmp/oo为自己解压文件路径,可以随意指定路径 2.ar -vx xx.deb 这会解压出3个文件debian- ...

  4. Oracle数据库导入、导出(远程、10g、11g)

    1  查看oracle的版本信息 (1)用客户端连接到数据库,执行select * from v$instance             查看version项 (2)select * from pr ...

  5. navicat 关于orcale新建表空间,用户和权限分配

    图文教程,直观, 上面连接数据库 下面创建表空间 建表空间的设置 表空间名的设置 新建用户 填写用户名,选择默认表空间 成员属性德设置,这里因为是自己用,所以选择最大权限,其他的权限这是需要专业的了 ...

  6. Spring 源码解析之DispatcherServlet源码解析(五)

    spring的整个请求流程都是围绕着DispatcherServlet进行的 类结构图 根据类的结构来说DispatcherServlet本身也是继承了HttpServlet的,所有的请求都是根据这一 ...

  7. 【转】STL中的set容器的一点总结

    转自 http://www.cnblogs.com/BeyondAnyTime/archive/2012/08/13/2636375.html 1.关于set C++ STL 之所以得到广泛的赞誉,也 ...

  8. mongodb启动脚本

    #!/bin/sh # #chkconfig: #description: mongodb start() { /usr/local/yunshipei/enterplorer/mongodb/bin ...

  9. win+apache网站打开很慢的解决笔记

    为了图方便,直接把wamp的vhost配置文件复制到新apache2.2.25上,结果打开静态页速度都非常慢. <VirtualHost *:> ServerAdmin www.fuck2 ...

  10. 利用mysql客户端查询UCSC数据库

    UCSC Genome Browser是由University of California Santa Cruz (UCSC) 创立和维护的,该站点包含有人类.小鼠和大鼠等多个物种的基因组草图和注释信 ...