gulp+ThinkPHP配置

gulp+ThinkPHP配置

目录结构:

html
|-src 开发目录
|-Home 静态页面
|-Public 静态资源目录
|-dist 生产目录
|-Home 静态页面
|-Public 静态资源目录

注:gulp-cssnano 弃用

命令行运行指令

cnpm install --save-dev

gulp watch	//热刷新

gulp build	//压缩输出内容

gulp clean	//清空目录下的dist文件

更新

2/10/2018 4:33:56 PM

添加配置

安装包

- gulp
- browser-sync 保存自动刷新
- del 文件删除
- gulp-rename 重命名文件
- gulp-cached 存当前任务中的文件,只让已修改的文件通过管道
- gulp-uglify 压缩文件
- modify-filename 修改路径中的文件名
- gulp-rename 重命名
- gulp-jshint js语法检查
- jshint js语法检查
- gulp-contrib-copy 不编译的文件直接copy
- gulp-notify 相当于 console.log()输出信息
- gulp-filter 过滤筛选指定文件
- gulp-less less编译
- gulp-sourcemap css资源地图
- gulp-babel 处理es6
- babel-core 处理es6
- babel-preset-env 处理es6
- gulp-rev 插入文件指纹(控制版本号)
- gulp.spritesmith 生成雪碧图
- gulp-cssnano CSS 压缩
- run-sequence 添加版本号
- gulp-rev-collector 替换html模板中的链接
- rev-path 添加版本号
- gulp-rev 添加指纹(版本号)
- run-sequence 添加版本号
- gulp-jsduck 生成js接口文档
- cloneable-readable 安全地克隆可读流

指令

gulp less		编译less
gulp css 处理css
gulp clean 清除生产环境目录
gulp image 图片输出
gulp script 处理js
gulp es6 处理es6(单独位于/js/es6目录下)
gulp spritesmith 生成雪碧图
gulp spritesmith 生成雪碧图
gulp build 执行全部编译任务
gulp doc 生成js接口文档

jsdoc

生成javascript API文档

http://yuri4ever.github.io/jsdoc/#@default

https://github.com/rwhogg/gulp-jsduck

安装对应的ruby方法(使用jsdoc)

https://rubyinstaller.org/downloads/

http://blog.csdn.net/u012882134/article/details/51685127

使用

http://www.cnblogs.com/hxling/archive/2012/11/27/2791067.html

	命 令 名 描  述

	@param  @argument 指定参数名和说明来描述一个函数参数
@returns 描述函数的返回值
@author 指示代码的作者
@deprecated 指示一个函数已经废弃,而且在将来的代码版本中将彻底删除。要避免使用这段代码
@see 创建一个HTML链接,指向指定类的描述
@version 指定发布版本
@requires 创建一个HTML链接,指向这个类所需的指定类
@throws @exception 描述函数可能抛出的异常的类型
{@link} 创建一个HTML链接,指向指定的类。这与@see很类似,但{@link}能嵌在注释文本中
@fileoverview 这是一个特殊的标记。如果在文件的第一个文档块中使用这个标记,则指定该文档块的余下部分将用来提供这个文件的概述
@class 提供类的有关信息,用在构造函数的文档中
@constructor 明确一个函数是某个类的构造函数
@type 指定函数的返回类型
@extends 指示一个类派生了另一个类。JSDoc通常自己就可以检测出这种信息,不过,在某些情况下则必须使用这个标记
@private 指示一个类或函数是私有的。私有类和函数不会出现在HTML文档中,除非运行JSDoc时提供了--private命令行选项
@final 指示一个值是常量值。要记住JavaScript无法真正保证一个值是常量
@ignore JSDoc忽略有这个标记的函数

添加版本号

项目开发依赖

	npm install --save-dev gulp-rev	   			版本8.1.1
npm install --save-dev gulp-rev-collector 版本1.2.4
npm install --save-dev run-sequence 需要修改对应的node包内容

参考网址

https://www.jianshu.com/p/df593ad8082d

https://www.cnblogs.com/lakeInHeart/p/7257443.html


// 1.打开node_modules\gulp-rev\index.js
//第135行
manifest[originalFile] = revisionedFile;
//更新为:
manifest[originalFile] = originalFile + '?v=' + file.revHash; //2.打开nodemodules\gulp-rev\nodemodules\rev-path\index.js
//10行
return modifyFilename(pth, (filename, ext) => `${filename}-${hash}${ext}`);
//更新为:
return modifyFilename(pth, (filename, ext) => `${filename}${ext}`); //3.打开node_modules\gulp-rev-collector\index.js
//40行
var cleanReplacement = path.basename(json[key]).replace(new RegExp( opts.revSuffix ), '' );
//更新为:
let cleanReplacement = path.basename(json[key]).split('?')[0];
//71行
return pattern.replace(/[\-\[\]\{\}\(\)\*\+\?\.\^\$\|\/\\]/g, "\\$&");
//更新为
var rp = pattern.replace(/[\-\[\]\{\}\(\)\*\+\?\.\^\$\|\/\\]/g, "\\$&");
rp = pattern + "(\\?v=(\\d|[a-z]){8,10})*";
return rp;

使用 jshintrc参数(js语法检查)

添加到package.json文件中

参考自https://www.jianshu.com/p/f6da9eb81994

https://blog.csdn.net/p358278505/article/details/70257392?locationNum=12&fps=1

{
//加强选项: //use es6. 3/5/6
"esversion": 6, //循环必须用大括号包起来
"curly": true, //设置为true,禁止使用这个选项 ==和 !=,强制使用 ===和 !==。
"eqeqeq": false, //允许警告js未来版本中定义的标识符。
"futurehostile": true, //检查无效 typeof操作符的值
"notypeof": true, //检查变量重复定义
// 他接受4个值:"inner" 只检查是否在相同的作用域重复定义;"outer" 检查外部作用域;
// false 与inne一样; true 允许变量覆盖
"shadow": "inner", //ECMAScript 5严格模式
// "global" - 全局层面的严格模式"use strict";
// "implied" - 文件里面使用"use strict";
// false - 禁止使用严格模式
// true - 函数上面必须使用一个"use strict";
"strict": "implied", //变量未定义
"undef": true, //变量定义未使用
"unused": true, // 设置为true时,禁止使用var声明变量
// "varstmt": true, // "globals": {
// "require": true
// }, //宽松选项: // 禁止缺少分号警告
"asi": true, //环境选项:
//暴露浏览器属性的全局变量,列如 window,document;
//注意:这个选项不暴露变量 alert或 console。
"browser": true, //这个选项定义了全局变量,通常用于日志调试: console, alert等等
"devel": true, //这个选项定义全局变量可以当你的代码运行在node的运行时环境
"node": true, //这个选项告诉JSHint,输入代码描述了一个ECMAScript 6模块。所有模块的代码解释为严格模式代码。
"module": true, //这个选项定义全局暴露的jQuery库。
"jquery": true // 强制使用有效的 JSDoc 注释
"valid-jsdoc":1,
// 强制 typeof 表达式与有效的字符串进行比较
// typeof foo === "undefimed" 错误
"valid-typeof":2, }

gulp+ThinkPHP配置的更多相关文章

  1. 基于流的自动化构建工具------gulp (简单配置)

    项目上线也有一阵子,回头过来看了看从最初的项目配置到开发的过程,总有些感慨,疲软期,正好花点时间,看看最初的配置情况 随着前端的发展,前端工程化慢慢成为业内的主流方式,项目开发的各种构建工具,也出现了 ...

  2. thinkphp配置rewrite模式访问时不生效 出现No input file specified解决方法

    使用thinkphp配置rewire模式的路径访问网站时, 直接复制官网的.htaccess文件的代码复制过去 1 2 3 4 5 6 <IfModule mod_rewrite.c>   ...

  3. ThinkPHP 配置详解

      3.0 ThinkPHP配置详解 3.1 入口文件的配置 一般不建议在入口文件做过多的配置,但可以重新定义一些系统常量,以下简单介绍几个常用的系统常量. 1.APP_PATH 默认情况下,框架的项 ...

  4. gulp结合Thinkphp配置

    gulpfile.js文件 /*! * gulp * $ npm install gulp gulp-ruby-sass gulp-cached gulp-uglify gulp-rename gul ...

  5. gulp使用配置

    gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,而且gulpjs使用的是nodejs中stream来读取和操作数据,其速 ...

  6. 前端构建工具:gulp的配置与使用

    安装gulp 因为gulp是基于node的管理工具,所以要先安装nodejs安装nodejsnodejs下载地址:中文站:http://nodejs.cn/ 英文站:https://nodejs.or ...

  7. ThinkPHP配置简单的mysql读写分离

    ThinkPHP内置了分布式数据库的支持,包括主从式数据库的读写分离,但是分布式数据库必须是相同的数据库类型. 配置DB_DEPLOY_TYPE 为1 可以采用分布式数据库支持.如果采用分布式数据库, ...

  8. 使用gulp自动化配置环境变量

    使用gulp拷贝文件,可以完成开发api环境变量的配置,例如公司的线上环境有三个: 1.alpha线上测试环境 2.dev线上测试环境 3.test 本地测试环境 (4.production 正式系统 ...

  9. thinkphp 配置

    ThinkPHP框架中所有配置文件的定义格式均采用返回PHP数组的方式,格式为: //项目配置文件 return array( 'DEFAULT_MODULE' => 'Index', //默认 ...

随机推荐

  1. linux线程及互斥锁

    进程是资源管理的最小单元,线程是程序执行的最小单元.在操作系统的设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销. 就像进程有一个PID一样,每个线程也有 ...

  2. awk高级玩法

    1. 程序元素 一个awk 程序是一对以模式(pattern) 与大括号框起来的操作(action) 组合而成的,或许,还会加上实现操作细节的函数(function ) .针对每个匹配于输人数据的模式 ...

  3. python字符串操作实方法大合集

    python字符串操作实方法大合集,包括了几乎所有常用的python字符串操作,如字符串的替换.删除.截取.复制.连接.比较.查找.分割等,需要的朋友可以参考下:   #1.去空格及特殊符号 s.st ...

  4. Libevent教程001: 简介与配置

    本文内容大致翻译自 libevent-book, 但不是照本翻译. 成文时, libevent最新的稳定版为 2.1.8 stable. 即本文如无特殊说明, 所有描述均以 2.1.8 stable ...

  5. 通过VirtualBox安装Linux系统(CentOS7)

    本文目的:创建虚拟系统.在windows系统中通过虚拟工具VirtualBox创建一个虚拟系统CentOS. 备注:(1)版本如下:VirtualBox-5.2.12-122591-Win 和Cent ...

  6. Vert.x 线程模型揭秘

    来源:鸟窝, colobu.com/2016/03/31/vertx-thread-model/ 如有好文章投稿,请点击 → 这里了解详情 Vert.x是一个在JVM开发reactive应用的框架,可 ...

  7. BZOJ_1797_[Ahoi2009]Mincut 最小割_最小割+tarjan

    BZOJ_1797_[Ahoi2009]Mincut 最小割_最小割+tarjan Description A,B两个国家正在交战,其中A国的物资运输网中有N个中转站,M条单向道路.设其中第i (1≤ ...

  8. jsp 基础知识之指令元素

    由于考研和结业的事情,这里荒废了许久,而如今重新捡起来,是因为带到公司的碳素笔没有油了......    jsp的指令元素:通常以<%@开始,以%>结尾. jsp主要包括三种指令元素:pa ...

  9. CSRF攻击【转载】

     CSRF(cross-site request forgery )跨站请求伪造,攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,通 ...

  10. python——几种截图对比方式!

    本次记录的几种截图对比方式,主要是为了在进行手机自动化测试时,通过截图对比来判断测试的正确性,方式如下: # -*- coding: utf- -*- ''' 用途:利用python实现多种方法来实现 ...