- 博客(72)
- 收藏
- 关注
原创 测试环境一键发布
首先需要创建一个单独的环境,防止被本地开发的代码影响。在当前项目的上级目录新建一个.deploy目录,用于发布指定项目。目前公司项目发布测试环境不够自动化,每次需要手动打包并且手动更新,影响开发效率。因此,如果能够将操作脚本化,不仅可以提高开发效率,同时也能减少失误造成的影响。DEPLOY_ENV=prod: 打包生产并上传镜像(将镜像名发给运维发布)DEPLOY_ENV=local: 打包本地代码发布测试环境。快速发布,本地代码忘了提交,导致远端代码缺失。远端代码有更新,忘记拉取代码。
2023-06-02 17:32:30
698
原创 前端项目接入gitlab CI/CD实现自动化发布
目前公司前端项目比较多,发布多是用手动打包的形式实现,当然后期我们基于portainer实现了自己的depoly脚本,但本质上还不够自动化。gitlab ci/cd是gitlab 自身集成的功能,理论上我们只需要增加一个配置文件即可。1、增加gitlab-ci.yml 文件到项目根目录(纯前后端分离项目,这一步就够了)2、将项目打包镜像所需要的文件,拷贝到项目输出目录里,参考下述copy.js。3、Rancher 上增加应用,导入文件里增加。
2023-06-02 16:48:35
575
原创 widows 系统下调试 ios webview里的H5页面
widows 系统下调试 ios webview里的H5页面,您知道不?如果有这需求,看这篇就够了。
2022-07-15 15:42:03
2289
6
原创 2022年如何成为一名优秀的大前端Leader
有人调侃Leader的作用就是不让产品????骚扰到干活的攻城狮????-????引用,没有招黑的意思。优秀的前端Leader要学会适当的拒绝,学会说No。并不是做的越多越好,而是让团队做的少价值高才好。这背后其实是当下互联网技术发展到一定阶段,出现了专业壁垒的问题。需要更加了解业务,了解技术的专业人士来制定方案。技术不能丢作为一名前端Leader,图谱基本都囊括了应该具备的技能,根据自己的业务线选择性的 一专多能 即可,网上一大堆我贴再长你也未必看,还是自己找吧,这里就不多说了。需要提的
2022-01-26 16:29:30
287
原创 前端业务代码工具库-outils
业务开发过程中,会经常用到日期格式化、url参数转对象、浏览器类型判断、节流函数等常用函数,为避免不同项目多次复制粘贴的麻烦,这里统一封装,并发布到npm,以提高开发效率。如果你也有常用的代码,欢迎为本项目提交pr。安装使用:直接下载min目录下的outils.min.js使用,支持UMD通用模块规范 使用npm安装浏览器: <script src="outils.min.js"></script> <script> var OS =
2022-01-26 15:27:30
220
原创 chrome 浏览器升级后接口无法正常访问
问题:chrome 浏览器升级后接口无法正常访问现象:接口请求不成功解决办法:地址览输入chrome://flags ,找到 Block insecure private network request ,设置Default为 Disabled后,Relaunch浏览器即可...
2021-10-21 10:33:42
1959
原创 正则表达式多行匹配html
let str = `<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>...
2020-04-17 19:02:55
584
原创 git 分支操作(正则)
1. |grep指令:简单的删选git branch |grep 'br' 筛选包含br字段的分支2.-E 筛选中可以使用正则语法git branch |grep -E 'br-\d+' 筛选 br-xxx 分支,xxx表示数字的分支3.|xargs 表示把前面的筛选作为后面的参数git branch |grep -E 'br-\d+[a]$' |xargs ...
2020-03-09 15:38:57
1051
原创 正则表达式教程
第一章:课程简介1.1 JS正则表达式简介及工具使用Regular Expresion 使用单个字符串来描述、匹配一系列符合某个句法规则的字符串说简单点就是安照某种规则去匹配符合条件的字符串工具:www.regexper.com/第二章:认识正则表达式2.1 RegExp对象Javascript 通过内置对象RegExp支持正则表达式有两种方法实例化Reg...
2020-03-09 15:36:46
128
原创 二分法查找数组中的某个值的索引
/** * 方法说明 * @searchNum 方法名 * @arr 搜索的数组范围 * @v 要搜综的值 * @index 搜索索引 * @return 返回搜索值的索引 */let searchNum = (arr = [], v, index) => { let left = 0; let right = index - 1; while ...
2020-01-13 17:49:58
427
原创 Javascript 发布订阅模式设计
// 发布订阅模式class EventEmitter { constructor() { // 事件对象,存放订阅的名字和事件 如: { click: [ handle1, handle2 ] } this.events = {} } // 订阅事件的方法 on(eventName, callback) { if (!this.events[ev...
2019-11-15 10:57:31
112
原创 js 闭包
//利用闭包实现varBook=(function(){if(!(thisinstanceofBook)){returnnewBook();}varbookNum=0;functioncheckBook(name){}//创建类function__book(newId,newName,...
2019-11-08 17:53:22
106
原创 js 面向对象开发
var Book = function (id, price, bookname) { // 私有属性 var num = 1 // 私有方法 function checkId () { } // 特权方法 this.getName = function () {} this.getPrice = function () {} this.setName ...
2019-11-08 15:47:40
113
原创 Javascript 真假对象
var checkObject = function(){ return{ checkName:function(){ console.log('checkName') }, checkEmail:function(){ }, checkPassword:function(){ } }}var o = checkOb...
2019-11-08 14:08:01
140
原创 Javasrcipt 定义一个可以为函数添加多个方法Methods
Function.prototype.addMethod = function(name,fn){ this.prototype[name] = fn; }var Methods = new Function();Methods.addMethod('checkName',function(){ let arg = Array.prototype.slice.cal...
2019-11-08 11:55:21
316
原创 vue 3.0响应式原理
圈里的人都知道,我们的vue 3.0面世了,以下是一个基于 proxy 实现的响应式原理/* Vue 3.0 响应式原理*/function Vue(){ this.$data = {a:1} this.el = document.getElementById('app') this.ast = ''; this.observe(this.$data...
2019-11-07 21:45:13
418
原创 call apply bind 区别
在JS中,这三者都是用来改变函数的this对象的指向的,他们有什么样的区别呢。在说区别之前还是先总结一下三者的相似之处:都是用来改变函数的this对象的指向的。 第一个参数都是this要指向的对象。 都可以利用后续参数传参。区别在哪里的,先看一个例子var xw={ name: "小王", gender: "男", age: 24, say: ...
2019-11-06 20:09:20
93
原创 Javascript 设计模式
//状态模式var status = { statusArr:[], on(state){ this.statusArr.push(state); return this; }, fire(){ this.statusArr.forEach((v,k)=>{ this...
2019-10-14 15:39:39
95
原创 Js 防抖、节流设计
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-...
2019-09-29 17:38:16
105
原创 Javascirpt 数据类型检测
toString.call(1)"[object Number]"toString.call(true)"[object Boolean]"toString.call(Object)"[object Function]"toString.call([])"[object Array]"toString.call(undefined)"[object Undefined]"to...
2019-09-27 14:18:04
73
原创 PHP HTTP类库
<?php/** * 封装基于curl的HTTP类库 * * @file class_httplib.php * @author qaulau@hotmail.com * @date 2013-8-1 */class http{ private $response; private $response_header; private $respons...
2019-07-07 19:52:16
828
原创 递归调用数组数据
let alllocalId = ['1111','22222']let upload = (alllocalId)=>{ let res = [] return new Promise((resolve,reject)=>{ let recursion = (alllocalId)=>{ if(allloca...
2019-04-09 15:50:46
622
原创 centos7 安装NVM 管理node
[转载] 转载自https://blog.csdn.net/shuizhaoshui/article/details/79325931NVM git地址:https://github.com/creationix/nvm1. 下载命令curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh...
2019-03-08 09:49:34
187
原创 微信浏览器useragent
PC端:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) wxwork/2.4.991 (MicroMessenger/6.2) WeChat/2.0.4IPhone 6s 手机端:Mozilla/5.0 (iPhone; CPU iPhon...
2019-03-02 16:48:33
9679
原创 es6 async await 使用
异步函数使用,函数执行过程中,等待某个异步函数执行后再执行接下来内容的。通常当前函数需要使用异步函数返回的值。<script> export default { template:'<div>async await 函数!</div>', mounted() { this.printInfo(); }, methods:...
2019-03-01 22:31:34
109
转载 单点登录原理与简单实现
一、单系统登录机制1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴...
2019-02-16 21:26:08
117
原创 微信小程序出现
最近在使用小程序<web-view>这个标签加载一个https网页的时候出现了{"base_resp":{"ret":-1}}这一个问题搞了好久~后来才发现是没把不校验合法域名、web-view(业务域名)、TLS版本及HTTPS证书这一个选项选上, 只要把这个勾上了显示就正常了。 使用<web-view>这个标签需要在小程序管理后...
2018-12-22 14:38:28
205
转载 利用ssh传输文件
在linux下一般用scp这个命令来通过ssh传输文件。 1、从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地目录) 例如scp root@192.168.0.101:/var/www/test.txt 把192.168.0.101上的/var/www/test.txt 的文件下载到/var/w...
2018-12-12 19:56:28
206
转载 linux服务器查看公网IP信息的方法
最近在解决网络问题时,需要查看本机的出口公网IP信息,所以在网络上搜索和请求运维达人,获得如下两个方法:curl ifconfig.me在linux系统中输入上述的命令,可以查看到本机连接的公网信息;如果该命令无效,可以使用下面一个命令,也同样可以获得对应的信息curl cip.cc ...
2018-12-10 19:34:22
350
原创 js动态生成二维码
1、首先在页面中加入jquery库文件和qrcode插件<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.qrcode.min.js"></script> 2
2018-10-24 13:47:05
986
原创 CookieUtil 对象 封装
由于 JavaScript 中读写 cookie 不是非常直观,常常需要写一些函数来简化 cookie 的功能。基本的 cookie 操作有三种:读取、写入和删除。它们在 CookieUtil 对象中如下表示。var CookieUtil = { get: function (name) { var cookieName = encodeURIComponent(name)...
2018-10-15 11:11:54
499
2
原创 js获取本机的网络IP地址
JavaScript是一门脚本语言,是不能操作文件,读取本地信息的,所以想要获取IP,还需要借助后端技术。方法如下://获取本机的网络ip地址function jsonpCallback(res) { var ip = res.Ip; // ip地址 var aa = res.Isp.split("市"); var isp = aa[0]; // ip省...
2018-10-12 17:35:25
1898
1
原创 Javascript 函数节流
//核心函数function throttle(method, context) { clearTimeout(method.tId); method.tId= setTimeout(function(){ method.call(context); }, 100);} //使用示例function resizeDiv(){ var body = document.bod...
2018-10-11 18:03:11
136
原创 Javascript Yielding Processes 定时器数组分块技术
//核心函数function chunk(array, process, context){ setTimeout(function(){ var item = array.shift(); process.call(context, item); if (array.length > 0){ setTimeout(arguments.callee, 100); } }, ...
2018-10-11 17:35:36
221
原创 javascript脚本自动选择输入框内指定数量的值
html部分:<form method="post" id="myForm" action="ss" name="form2"> <input type="text" autofocus> </form>javascript部分:function selectText(textbox
2018-09-28 17:27:51
825
原创 WEB页面上的内容防复制
html 写法: <html lang="en"> <head> <meta charset="UTF-8"> <title>防复制内容例子</title> </head> <body oncontextmenu="return false"
2018-09-27 11:24:59
1731
2
原创 企业微信扫一扫登录配置
大家可能经常会用到企业微信登录某个应用,如下面所示的公司OA系统,就需要扫一扫登录: 那么这种情况开发人员将如何配置呢?第一步:要有企业微信账户,并开通相关功能(这里去看企业微信相关配置,笔者并没有自己去配),在企业微信里找到 agentId和appId第二步:在html部分插入如下代码<div id="js-layout-login-login-wechat-qr...
2018-09-26 15:17:29
7601
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人