- 博客(182)
- 资源 (13)
- 收藏
- 关注
原创 深入理解javascript系列之序章
从今天开始,博主会对javascript进行深入理解分析并将自己学习到的一些知识分析整理成博文,来让大家一起共同学习和讨论。如果有什么疑问或者建议,可以和博主联系。如果包含什么错误,希望大家可以进行讨论和指导。该系列是建立在已经基本掌握了javascript中的基础语法,进入更深一步学习的进阶笔记。该系列目录分为:深入理解之内存分配
2015-06-20 10:26:31 1755 1
原创 前端构建之CERT_HAS_EXPIRED和certificate has expired解决方案
2024年 1 月 22 日,淘宝原镜像域名(registry.npm.taobao.org)的 HTTPS 证书正式到期。如果想要继续使用,需要将 npm 源切换到新的源(registry.npmmirror.com),否则会报错。
2024-03-01 21:30:00 583
原创 一分钟带你了解腾讯微前端hel
在软件工程中,模块联邦是一种技术,允许不同的模块在运行时动态地共享和加载。这种技术增强了应用程序的灵活性和效率,可以轻松实现热更新、按需加载和代码分割等功能。模块联邦的核心思想是创建一个可以互操作的模块生态系统,每个模块都可以作为独立的实体存在并被其他模块使用。
2023-12-07 23:30:00 83
原创 一分钟带你了解vueuse
VueUse是一个非常强大和实用的工具集,它可以让你的Vue开发更简单和高效。关注博主,未来会介绍更多的前端解决方案。
2023-12-06 19:45:00 221
原创 如何使用git-credentials来管理git账号
git-credentials是一个命令行工具,用于存储和管理Git凭证信息,包括用户名和密码。它可以帮助我们自动化地输入用户名和密码的过程,避免频繁地手动输入。虽然git-credentials可以帮助我们简化密码管理,但仍然需要注意一些安全性问题。首先,确保计算机本身的安全性非常重要。建议使用强密码来保护计算机,并定期更新操作系统和软件的安全补丁。此外,建议定期审查和更新存储在凭证助手中的凭证信息,以确保其准确性。如果怀疑存储的凭证信息已经泄露或被篡改,应立即更改密码并更新存储的凭证信息。
2023-11-10 21:15:00 3593
原创 Mac上brew切换国内源【极简方案】
在Mac上通过更改Homebrew的镜像源为阿里云镜像来解决下载开源包时可能遇到的网络不通问题。作者提供了四个简单的步骤来完成这个设置过程。
2023-10-10 20:30:00 6343
原创 Webpack迁移Vite采坑指南
如果是新项目,建议用vite来开发和构建;如果是老项目,建议用vite来开发,还是用webpack来构建,以保证稳定性。
2023-08-25 22:00:00 881
原创 @vue/composition-api原理解析
上一篇文章介绍了@vue/composition-api是什么,以及为什么要用,现在来系统地解析一下 @vue/composition-api 的实现原理,希望可以加深对其工作机制的理解。老规矩先分享下AI评价:对@vue/composition-api实现原理的介绍整体上非常详细和准确,展示了核心代码以及关键逻辑,这为理解其工作机制提供了很好的分析。
2023-08-02 18:45:00 521
原创 @vue/composition-api功能介绍
@vue/composition-api 是通过一个插件的方式,为 Vue2(2.7自带,2.6及以下可用) 提供类似 Vue3 composition API 的函数式编程能力。它的实现思路主要有:1、提供组合式函数,在函数内部追踪响应性依赖。2、将组合产生的响应式状态保存到组件实例上,并在渲染期间还原。3、重写组件的生命周期钩子,在钩子函数中恢复组合函数的上下文环境。通过 setup() 函数作为入口,在其执行期间运行各响应式 API 追踪依赖,形成响应式状态,然后保存到实例上;在生命周期钩子中变更执行
2023-08-01 18:30:00 1531
原创 npm ERR! Could not resolve dependency;npm ERR! ERESOLVE unable to resolve dependency tree解决方案
npm ERR! Could not resolve dependency;npm ERR! ERESOLVE unable to resolve dependency tree应该如何解决?其根本原因是为何?本文一一解答。
2023-07-28 19:45:00 2515
原创 写给小白的ChatGPT和AI原理
以上就是生成式AI的基本工作原理,通过深度学习算法处理大量的文本数据,从而学习语言的语法和语义规律,并能够自动生成符合语法和语义的文本。在生成文本时,生成式AI会基于上下文信息生成一个语言模型,然后利用随机采样或贪心搜索方法生成文本序列。
2023-06-25 19:00:00 24922 2
原创 基于git-bisect来快速找到bug所在提交记录
git bisect是一个用于快速找出引入bug的提交的工具。它的基本原理是使用二分法在提交历史中搜索,每次检出一个中间的提交,让用户测试是否有bug,然后根据用户的反馈缩小搜索范围,直到找到第一个有bug的提交。
2023-05-17 15:58:20 164
原创 远程文件下载采坑指南
Content Disposition附件头是从浏览器下载文件的最佳首选方式。它具有更好的跨浏览器兼容性,不会有任何内存限制,也不需要任何JavaScript。主流平台都是采用这个方式来进行下载(CSDN/minio等等)最好的方式是方案一,如果方案一没有条件,有存在足够技术能力的话就用方案五,自己私有化html和sw(单独短暂弹框的交互是无法解决的)。否则就退而求其次用方案二或者三来直接打开(牺牲pdf、图片等文件的下载体验,它们会直接打开)。
2023-02-13 16:16:42 712
原创 配置跨域浏览器,绕过CORS限制
开发过程中,偶尔会遇到接口跨域CORS的问题,有时候服务端配置起来比较麻烦,生产环境也存在风险。故而可以自己配置一个不校验CORS的浏览器,来方便开发。
2022-06-13 17:56:00 1170
原创 js判断字符串处于键盘三连键
有个弱密码的需求,需要判断用户注册的密码不能是键盘三连键的,比如说(123,qaz,rew,TRE,%RD,bhu)等等,找了下都没有最完美解决方案,故而自己基于网上的方案进一步封装了下。
2022-06-10 13:20:43 733 2
原创 三方包依赖node版本过高,构建失败解决方案
前端生态众多,开发中会用到各种各样的三方包。但是构建平台往往是统一的node版本,如果遇到构建机node版本太低,而某些三方包语法报错、或者某些三方库有bug的情况怎么办呢?
2022-06-01 10:53:50 2345 2
原创 Mac安装不同版本git
前言Mac安装不同版本git方法,网上大多数都是brew 下载,但是这样只支持最新版的git,而有时候xcode或者操作系统版本限制,导致不能用最新版或者只想用指定版本时,就不奏效了。这里介绍下比较简单的解决方案。解决方案首先访问git-osx-installer Activity,这个网站。找到指定的版本的dmg,安装即可。通过git --version来验证是否安装成功。...
2022-05-13 09:47:59 683
原创 SourceTree基本使用指南
新公司的git规范对rebase的使用大大增加,之前都是merge一把刷子干的,而为了能够更好的查看git记录树,可视化工具sourcetree是不错的选择,故而整理下常见的使用方法。
2022-05-09 09:51:53 2722
原创 reactnative工程化建设
背景在掌握了js、css、html、react等前端基础后,可以来深入了解下reactNative从demo到生产环境使用的过程中,还有哪些点需要考虑。架构让我们自顶向下的来看看。首先我们的项目需要同时具备在app内和浏览器内使用的能力,这样才是真正的跨了三端。我们需要做到基于react做平行扩展,这样未来小程序内无论是webview嵌h5的方式还是小程序原生的方式,都存在可以想象和优化的空间。那么问题来了,如何做到h5和app内通用呢?这里我们需要分析两个容器的异同点:原生能力App内
2022-01-07 16:06:33 971
原创 input的type为number时,过滤符号的方法
前言input标签的type为number时,是可以输入+/-/e/.等符号的。通过常规的方式(比如onChange中去正则、onKeypress中去拦截等均无效)。因为当在移动端时,输入-,浏览器识别的e.target.value为’’,所以压根没有触发onChange。解决办法通过监听input的onInput事件,然后判断是否为’'来解决:let value = e.target.value; if (!value) { e.preventDefault();
2021-11-16 15:33:57 560
原创 如何封装CI专用的基础镜像
前言本文将介绍基于docker、gitlab CI、k8s、rancher的构建部署生态下,如果通过封装一个基础镜像来完成对发布者的通知触达。整体思路首先需要理清表现形式,由于基于gitlab CI,所以肯定是在CI过程中的某些Job或者stage中,通过shell来发送信息给开发者。shell的封装可以通过node来提供一个cli命令行工具,发送信息的渠道可以选择邮件、微信等等具有api的通信,由于我们是网易,所以就选择popo,对应不同的任务应该发送给不同的目标,所以具体发送命令的表现形式应该如
2021-07-05 19:28:23 526
原创 云原生下的企业级前端构建实践
前言容器、k8s、云原生现在越来越流行,在云原生时代下的前端项目构建发布有什么变化呢?相比传统的构建部署平台,云原生有哪些区别?如果对传统构建部署平台下的企业级项目构建感兴趣,可以先看看[统一部署平台下的企业级前端构建实践]。今天这里主要讲的是基于开源轮子的云原生构建方案(docker/k8s/rancher/gitlab ci)完整流程完整流程如下图所示:1、代码托管在gitlab,借用gitlab 的ci cd;2、gitlab的ci主要负责工程自身的build打包,以及对docker镜像的
2021-05-18 09:48:07 363
原创 统一部署平台下的企业级前端构建实践
前言不同的公司有不同的前端资源构建发布方式,这里主要介绍下网易内部NDP平台下基于Ant构建前端企业级项目的实践。企业级的含义就是追求至高的可维护性和尽可能的降低个性化。如果你看过egg、umi、ssr、next等项目的话,应该知道对于多人团队来说,约定优于配置的重要性。传统的Ant构建传统的前端工程,NDP是基于Ant语法来构建的,Ant语法晦涩难懂,需要额外增加学习成本和心智负担。这里可以举个例子,先看看入口文件:<project> <!--property 相对与
2021-05-18 09:46:14 467
原创 安卓7.0+不root不改操作系统抓包https方案
首先安装:VirtualXposed和JustTrustMe。启动virtualXposed,安照提示赋予相应的权限。在主界面点击菜单按钮,选择"添加应用"在添加应用列表选择 “justTrustme” 和 需要抓包测试的App(比如微信、微博),并安装在 virtualXposed 中打开 xposed 应用。点击左上角菜单按钮,切换到模块。此时会看到 “justTrustme” 选项。在 “justTrustme” 选项后打钩,并按照提示,返回菜单界面重启virtualXposeddone!
2020-08-14 10:05:57 2400 2
原创 fatal: The remote end hung up unexpectedly MiB fatal: early EOF fatal: index-pack failed解决方案
gitclone 文件太大无法下载解决方案当项目过大时, git clone往往会出现 fatal: The remote end hung up unexpectedly MiB fatal: early EOF fatal: index-pack failed等问题。解决方案如下:git clone时加上 --depth=1,比如:depth用于指定克隆深度,为1即表示只克隆最近一次commit.这种方法克隆的项目只包含最近的一次commit的一个分支,体积很小。但是有时候即使这样,文件还
2020-07-15 10:37:24 4781
原创 读《增长黑客》有感
前言《增长黑客》作为互联网产品策划必读书籍,详细介绍了如何让产品发展更好,并列举了各种案例和方法论。笔者作为技术人员,阅读《增长黑客》后整理笔记于此。忙碌的朋友们可以从本文看看是否有兴趣和必要去拜读下《增长黑客》。什么是增长黑客?首先看一个业界标杆增长黑客,高手的故事:安迪·琼斯(Andy Johns)是硅谷的一名富有经验的增长黑客,曾效力于 Facebook、Twitter、Quora 等著名公司的增长部门。他的职业生涯或许可以让我们管窥一 斑。Facebook一战成名2008 年,当安迪加入
2020-06-30 17:46:14 23816
原创 从0到1基于vue搭建后台管理项目
本文主要内容是如何从0到1基于vue搭建一个后台管理项目的前端工程。示例的代码地址:https://github.com/tyuqing/vue-admin1 创建项目使用vue-cli3快速创建项目,具体的创建方法vue-cli官网上有说明。创建时大家可根据自己项目的需求选择合适的模块,我使用的配置如下图所示。其中选中了Babel, Router, Vuex, CSS Pre-proce...
2020-03-30 13:02:50 2572
原创 vue技术栈前端建设方案
前言主要介绍云课堂前端在CRM系统的前端建设方面的经验总结,方便其他前端人做技术选型,全栈工程师快速建站。本文适合对vue技术栈和前端工具化、工程化感兴趣的朋友。整体架构CRM系统的服务端是基于node的,前端是以vue技术栈为主的。前端部分整体架构图如下:应用层整体前端应用层基于vue技术栈的传统三大件:路由层由vue-router统一管理。基础组件库则是选择了基于vue的e...
2019-12-12 16:26:49 1234
原创 localhost启动https的方式
本地启动一个服务,默认是http的,如果我们需要某些https的场景(比如说绕过url白名单代理或者是使用一些api特性)时,则可以自己生成证书来完成这些工作。这里以http-server作为静态服务器来展示。首先生成证书:openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.p...
2019-11-08 10:53:43 12403
原创 前端全局替换图片服务cdn的解决方案
前言主要介绍下当我们的产品中依赖的某一个cdn如图片服务下线后,有哪几种方案来解决和处理这种情况。分别就手动代码层替换、全局异常监控、样式图片资源处理、nginx映射修改和serviceworker的各种方法进行对比。解决方案首先,一个cdn服务如果即将下线,我们需要把资源批量导到另一个cdn中。如果资源本身都不存在了,也没有办法解决这个问题了。手动代码替换cdn服务的图片,我们在代码中...
2019-10-14 14:29:42 2702 2
原创 react可以写命令行?体验怎么样?
简介本文不介绍具体API,只是抛转引玉介绍一种思路。体验最近有一个库ink,赋予了react写命令行UI的操作。下面提供一个笔者在yoso开发时封装的一套流程:可以看到,非常流畅,这里更不谈其组件化后会有多少种可能性和效率提升。其官网也介绍了很多可以使用的组件,可以大大提高复杂型cli的效率和维护性。原理react在传统的web开发中,通过react,和react-dom两个包...
2019-07-09 15:54:23 368
原创 使用SRI解决CDN劫持问题
CDN劫持的表现形式之前总说https的安全的。如果你遇到这么一个场景:网站是https的,cdn也是https,但是用户还是看到广告,或者直接唤起其他app等更加恶心的操作。这个时候你可以考虑下自己是否遭到了CDN劫持。劫持方非常狡猾,每天每个用户只劫持一次,或者只会在固定时间段劫持,非常难以重现。这样说明,使用CDN也存在风险,如果攻击者获得对 CDN 的控制权,则可以将任意恶意内容注...
2019-07-04 14:51:28 2951
原创 serviceworker运用与实践
前言本文首先会简单介绍下前端的常见缓存方式,再引入serviceworker的概念,针对其原理和如何运用进行介绍。然后基于google推出的第三方库workbox,在产品中进行运用实践,并对其原理进行简要剖析。前端缓存简介先简单介绍一下现有的前端缓存技术方案,主要分为http缓存和浏览器缓存。http缓存http缓存都是第二次请求时开始的,这也是个老生常谈的话题了。无非也是那几个http...
2019-01-24 09:33:36 12475
原创 charles的一些用法整理
前言charles是常用的抓包工具,这里整理一下自己在使用过程中的一些经验。 首先说明,我使用的是mac端的3.11.2版本的charles。抓取Https如果不设置,默认抓取https的页面,返回值是乱码的。 1.首先下载证书 Help SSL Proxying Install Charles Root Certificate 2.信任改证书 证书下载后,会出现在系统的钥
2017-09-03 13:16:05 4198
原创 使用socket.io与express结合,体验websocket
前言自己于express框架的基础上,以node为服务端,基于socket.io,实现了一个建议的聊天室。 成功从服务端推送数据到客户端。 效果如下图: 将客户端的信息传递到服务端后,服务端主动推送给客户端。websocket原理简单来说,就是服务端主动推送信息给客户端。看看其与http协议的区别: websocket有如下特点: 其他特点包括: (1)建立在 TCP 协议之上,
2017-06-17 14:04:02 8516
原创 Ant之build.xml配置详解
前言国内关于build.xml的配置资料太零散了,实在是受不了,故而将自己的笔记整理成博文,方便大家查阅和理解。build.xml配置参数构建文件默认叫build.xml,其有很多配置参数。project每个构建文件都有一个project标签,有以下属性: - default:表示默认的运行目标,这个属性是必须的。 - basedir:表示项目的基准目录。 - name:表示项目名。
2017-06-01 10:05:48 59195 5
原创 浏览器跨域问题解决办法
浏览器跨域问题解决办法–前言之前在一个项目中,调用了别的部门的接口,但是由于存在跨域问题,只能进行简单的本地数据模拟调试,然后再把资源给对方进行联调。这样的方法肯定不是最佳方案,正好最近看到一篇文章,说到的就是跨域问题的解决办法,所以进行了学习和整理。同源政策首先说说同源政策,最初,它的含义是指,A网页设置的Cookie,B网页不能打开,除非这两个网页“同源”。所谓“同源”,就是三个相同:协议相同
2016-05-14 10:37:04 5712
selectionHelper
2015-12-18
C# Socket编程入门实例
2015-10-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人