自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (4)
  • 收藏
  • 关注

原创 React: error An unexpected error occurred: “EPERM: operation not permitted, rename...

使用react-create-app安装的时候报出如上的错误。解决办法是:再执行一次…因为这个错误是React尝试重命名某个没有目录权限下文件时报出的错误,所以不妨打开那个目录看看:错误中需要将create-react-app.cmd.cmd 重命名为 create-react-app.cmd然而我打开目录发现已经重命名成功了。所以感觉再执行一次应该是可以,结果重新执行了一次就真的可以了…另外顺带说一句,这个目录应该是全局安装才会报出的,也就是比如如下的安装方式:yarn create rea

2020-12-31 09:21:20 2596

原创 config:fail,Error: 系统错误,错误码:40048,invalid url domain

调用微信接口报出的错误。这个错误原因是因为安全域名配置错误。分两种情况:若是公众号的测试号,你完全可以写一个内网ip,比如192.168.1.100:8080,不必内网穿透,当然如果是需要微信回调的话还要外网可访问若是公众号的正式号,可以配置一级域名,比如mydomain.com即可,之后的二级域名都是生效的。总之,需要保证公众号配置的安全域名与调用接口所在页面的域名一致。不一致就会有上面的错误。...

2020-12-30 13:47:42 17260 1

原创 调试微信分享:require subscribe

如果是调试测试号,这个错误的原因是需要你去关注公众号。在测试号的后台会有一个二维码,用你需要调用微信接口的那个微信号扫码,成功之后会有显示已经关注的用户列表。然后再次调用接口就可以了。以上,扫码关注即可。...

2020-12-30 13:35:17 2973

原创 jsdoc的简单使用

安装npm install jsdoc -g书写jsdoc有一套自己的规范,要按规矩办事,比如下:/** * 求两个数的积 * @param {number} x - 乘数 * @param {number} y - 被乘数 * @return {number} 积 */function multiply(x, y) { return x * y;}这里有个小技巧,一般ide都会支持自动补全注释,也就是最好先写好你的方法,之后再去写jsdoc的注释。比如上边的方法,再方法写

2020-12-29 17:26:56 412

原创 监听iframe中的DOMContentLoaded事件

是不可以的…虽然可以获得iframe的document对象var frameDoc = document.getElementById('iframeViewPdf').contentWindow.document;然后并没有卵用,addEventListener并不会触发。但你可以通过iframe的onload事件,然后获取iframe内部的全局变量进行通信。更多信息 参考这里 https://stackoverflow.com/questions/16960829/detect-domcon

2020-12-29 16:17:42 1409 1

原创 egg-scripts: Permission denied

在启动egg的时候发现报错:sh: 1: egg-scripts: Permission deniednpm ERR! code ELIFECYCLEnpm ERR! errno 126npm ERR! test-egg-jssdk@1.0.0 start: `egg-scripts start --daemon --title=egg-server-test-egg-jssdk`npm ERR! Exit status 126npm ERR!npm ERR! Failed at the te

2020-12-29 13:11:54 2742

原创 你知道么,不使用sass less stylus,仅用原生css就可以定义变量

我们知道使用css预编译语言可以定义变量,应用广泛,比如统一页面的视觉,但其实仅仅使用css就可以实现这个功能。而且兼容到ie9+,也就是说,如果你用了vue这种框架就可以放心大胆的使用这个功能。值得注意的是,定义的变量,其实是属性,只能以--作为前缀。否则是会报错了。...

2020-12-26 14:31:39 221

原创 vue-router 页面跳转,返回到顶部的几种方式

标准答案:const router = new VueRouter({ routes, // 对于页面跳转,全部都返回到页面顶部。 scrollBehavior(to, from, savedPosition) { return { x: 0, y: 0 }; },});如上,简单解释一下,其实scrollBehavior这个api初衷应该是用于定位锚点的。也就是比如你的页面有一些<div id="abc"></div>这种锚点,希望在跳转路由之后自动

2020-12-24 14:07:01 5032

原创 iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow

iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations.for..in loops iterate over the entire prototype chain, which is virtually never what

2020-12-22 16:15:03 7642

原创 [egg-init] use registry: https://registry.npmjs.org

在运行初始化eggjs的项目时候报错如下:[egg-init] use registry: https://registry.npmjs.org查看nrm ls 明明当前是用的淘宝源。执行npm config ls 看到的也是淘宝源后来直接在命令行初始化时候指定源就可以npm init egg --type=simple --registry https://registry.npm.taobao.org...

2020-12-21 22:32:22 983

原创 docker部署svn简明教程...

搜索docker hub$ docker search svn第一个就是拉取镜像$ docker pull garethflowers/svn-server# 之后查看镜像$ docker images svn-server启动docker run --privileged=true --restart always --name svn-server -d -v /opt/module/svn:/var/opt/svn -p 3690:3690 garethflowers/svn

2020-12-21 20:26:54 619

原创 深入理解pdf.js,PDFObject, iframe 三种方式来打开PDF文件的区别

浏览器原生就是支持打开PDF文件的。所以使用iframe打开就相当于是使用浏览器自带的PDF插件打开,这个很好理解。至于PDFObject,他是借助了embed这个标签,这个标签是什么概念?其实就是使用浏览器的PDF插件打开。所以他和iframe打开的核心是一样的,只不过使用embed感觉不用内嵌iframe更好些。其实PDFObject.js库真的很小,压缩的代码只有不到3k。也说明了他实现的功能很简单,从他最终的导出接口可以看到: return { embed: function (

2020-12-21 18:01:16 1867

原创 Uncaught (in promise) TypeError: canvas.getContext is not a function

被渲染的canvas标签,必须是canvas…以下是好的<canvas id="the-canvas" ></canvas>以下是不可以的<div id="the-canvas" ></div>

2020-12-20 20:56:35 12415 1

原创 Mockjs的理解与简单使用

感觉在实际前后台联调的过程中,主要有以下几个用到Mockjs的时机:开发新功能,后台接口以及相关的字段已经定义了,但还并没有写实现,也就是无法访问,这时候就可以使用Mockjs,来模拟数据的返回。后台返回的数据不足以模拟某些场景,比如你想看一下分页的效果,但数据太少。Mockjs就可以满足上面的需求:简单方便的生成随机数据拦截Ajax请求其实这也是其官网上自己对自己定义生成随机数据,拦截 Ajax 请求Mockjs做的事情很简单,但他实现的很优雅,下面我先举一个简单例子:im.

2020-12-19 19:29:27 627 1

原创 antd 与 element-ui如何按需引入,以及二者的不同

antd与element-ui作为两个用途广泛的ui框架,均提供了按需引入,毕竟全量引入会导致包体积太大。尤其是当我们只想使用其中几个组件的时候,按需引入就变得更有必要了。我特意数了一下,二者均提供了共计63个组件,这是不是有什么特殊意义…当然这么多组件更进一步证明了按需引入的必要性。其实官方均已经提供了按需引入的方式:antd# 安装 babel-plugin-import$ npm install babel-plugin-import -D# 在babel.config.js,或者.b

2020-12-19 16:01:26 5593 2

原创 记一次vue3在ie11中空白问题的探索

我并没有解决这个问题,但说不定能给你提供一些思路…我的项目使用vue-cli进行初始化的。看一下package.json的依赖项目: "dependencies": { "core-js": "^3.6.5", "vue": "^3.0.0" },其实并不止这两个依赖,vue3本身也依赖于别的项目: "dependencies": { "@vue/shared": "3.0.4", "@vue/compiler-dom": "3.0.4", "@vu

2020-12-17 23:40:49 2015 2

原创 实际中使用Javascript中sessionStorage的注意事项

平常时候使用sessionStorage,只是相当于把他当做临时的缓存,当用户在页面间跳转的时候可以共享数据。但如果细细分析,sessionStorage还是有一些注意事项的。了解这些,可以避免在项目中出现莫名其妙的问题。首先引用一段MDN的解释:页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。在新标签或窗口打开一个页面时会复制顶级浏览会话的上下文作为新会话的上下文,这点和 session cookies 的运行方式不同。打开多个相同的URL的Tabs页面,会创

2020-12-17 13:17:07 1034

原创 使用eggjs + axios post方式通过blob对象进行文件下载

以下是egg.js的后台代码const Controller = require('egg').Controller;const path = require('path');const fs = require('fs');class HomeController extends Controller { async index() { const filePath = path.resolve(this.app.config.static.dir, 'file_message_to

2020-12-16 14:03:08 1630

原创 浅析javascript中的export/import 与commonjs的require/exports,以及export default的问题

在commonjs,也就是nodejs中,定义导出的时候其实就是exports对象,比如module.exports = {a: 1, b: 2};

2020-12-16 10:43:15 3122

原创 git中文件未区分大小写的原因以及如何解决

项目开发的时候给文件重命名是常见的操作。但如果仅仅是改变了大小写会怎样呢?λ lsREADME.txtλ mv README.txt Readme.txtλ git statusOn branch masternothing to commit, working tree clean尽然完全不生效…说到为什么会这样,不知道大家有没有注意到,windows文件系统是不区分文件大小写的。比如当我要把如下一个文件命名为README.txt,因为已经存在了一个Readme.txt文件,所以这

2020-12-15 23:13:49 1444 1

原创 1 error in child compilations webpack 5

出现这个错误原因可能是有很多,但该错误并不会打印出错误的堆栈信息。[webpack-cli] Compilation finishedassets by status 15 bytes [cached] 1 asset./temp.js 14 bytes [built] [code generated]1 ERROR in child compilationswebpack 5.10.2 compiled with 1 error in 298 ms这让人情何以堪?我尝试自己写插件捕获错误日

2020-12-15 20:17:08 10378 2

原创 vue中@click与@click.native,及其vue事件机制的分析

vue维护了自己的事件机制。所以就有了原生DOM事件和自定义事件的区别,比如下面这段官网原话。用在普通元素上时,只能监听原生 DOM 事件。用在自定义元素组件上时,也可以监听子组件触发的自定义事件。本文也将围绕这一句话展开。想必大家都会在自定义组件中自定义事件。<my-component v-on:my-event="doSomething"></my-component>那么如何给自定义组价添加原生事件呢,其实想一想理论上是不可行的,因为自定义组件最终不会渲染到页

2020-12-14 21:02:49 5099

原创 图文讲解在docker中部署gitlab

准备docker环境如果你使用的是windows或者mac建议直接下载对应的客户端。具体的完全可以按照官方的步骤来。下载地址配置加速拉取docker镜像$ docker pull gitlab/gitlab-ce以上ce是指社区版,这将会拉取社区版的最新镜像到本机。运行$ docker run -d -p 443:443 -p 8088:80 -p 222:22 \--name gitlab --restart always \-v /opt/module/gitlab/config

2020-12-13 14:37:33 596

原创 图文:console terminal tty shell 这些概念的历史渊源

在很久以前,人们使用的电脑是可以通过一些按键直接控制比如寄存器等底层硬件设备的。这些按键所在的操作面板就是控制台(console)。简单的说那时候没有操作系统帮助你控制输入输出,控制寄存器内存,所以全是手动操作。后来为了不局限于距离(脑补的…),人们开始使用电缆去连接计算机,这时候电缆的开始端就是这台计算机,另一边当然就是终端(Terminal)。但终端只是个概念。具体的应该怎么去替代控制台的功能呢?早期人们使用的是电传打字机(Teletypewriter: TTY),也就是你可能输入一行 ls,就

2020-12-13 10:36:00 192

原创 推荐两个小而美的VSCode插件

Bracket Pair Colorizer 2实际项目开发中,可能函数嵌套太深,导致不知道当前的花括号在什么地方结尾,这个插件可以帮你快速区分成对的花括号,并且当光标停留在一个花括号的时候会标记出整个花括号体。Bookmarks如果你正在维护一个非常大JS文件或者Vue组件。你可能在methods与template等地方来回切换,疯狂的拖动滚动条… 这个插件一定程度上可以把帮你解决问题。使用它你可以在你想要的行处打上书签,你可以使用快捷键来回的在几个书签中切换。...

2020-12-12 11:37:12 219

原创 await is only valid in async function

这个错误的意思是await只能放到async函数内部,言下之意:await必须放到函数里函数必须有async修饰符错误1: 没有放到函数里const myFun = async () => { return new Promise((resolve, reject) => { setTimeout(() => { resolve(1) },1000) })}// 错误: 没有放在函数里res1 = await myFun();cons

2020-12-12 09:45:07 40762 3

原创 如何判断element-ui表格文本框当前已经选中的状态

今天犯了一个思维定式的错误,一直以为,渲染到element-ui表格中的数据中如果包含checked字段,那么当被选中的时候,就会设置为true。后来想想怎么可能呢…自己还debug了半天。实际上官方文档是这样的:其中,selection是选中的集合。而row是当前触发的那一条数据。显然你是直接得不到是否当前行是选中的这个状态。还需要遍历一下row.checked = false;selection.forEach(item => { if (item === row) { row.c

2020-12-11 17:15:58 3146 1

原创 如果你的拯救者笔记本电脑卡顿,那么可以这样试试

最近发现拯救者电脑卡成狗。自己想着不应该啊,这么高的配置,至于卸载电脑管家或者禁用启动项应该不至于影响到电脑卡顿。后来一阵摸索,发现发电源调成高性能就可以了。可能上一次使用时候没有插电源导致电量快耗尽了,隐约记得提示我进入节能模式。应该就这个这个模式导致的。点击windows图标 -> 点击左下侧齿轮样式的设置图标 -> 点击系统之后点击创建电源计划我这里自己创建了一个高性能的。所以可能比你的显示多出这个。然后选择高性能即可如上图所示,点击下一步然后按照提示输入确定即可。经过这

2020-12-09 13:30:27 23530 1

原创 配置chrome浏览器跨域

右键浏览器图标,点击属性,仅需要在目标里.exe后边添加参数"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir=D:\app\MyChromeDevUserData其中user-data-dir可以配置为你自己的任意目录。...

2020-12-09 10:33:07 128

原创 白话版前端Javascript 节流与防抖

节流与防抖是老生常谈的话题…二者的区别总是搞不大清。今天用大白话解释下:二者都是在事件多次触发的时候。避免触发太多的回调函数。进而提高性能。比如输入框会监听用户的keyup事件,进而调用后台接口,返回数据。但如果输入太快太多,会频繁调用接口,导致接口压力比较大。。其实二者的根本区别是触发时机不同防抖是当事件不再触发的n秒后执行事件。假如你在输入框内持续输入,那么一次接口都不会调用,直到你不输入了,过了n秒,才调用接口。节流是当事件触发之后的n秒后才能再次触发。假如你仍旧持续输入,那么接口会按照n

2020-12-07 18:46:08 152

原创 Arrow function ‘xxx‘ expected no return value.eslintconsistent-return

错误原因在于函数返回值可能不一致。比如以下两种情况function doSomething(condition) { if (condition) { return true; } else { return; }}function doSomething(condition) { if (condition) { return true; }}正确的写法如下:function doSomething(c

2020-12-07 10:09:16 5953

原创 优雅解决:(linebreak-style) Expected linebreaks to be ‘LF‘ but found ‘CRLF‘. (eslint)

有时候使用脚手架创建的项目,比如vue-cli,会默认使用eslint的一些规则,比如airbnb。其中基本会包含这样一条规则:"linebreak-style": ["error", "unix"],这个规则的意思是回车换行符使用unix风格的,也就是LF。unix其实主要就是指mac,或者ubuntu这类的。本来团队都用Mac就没啥问题。但如果你用的是windows。就会有标题中的错误:(linebreak-style) Expected linebreaks to be 'LF' but fo

2020-12-07 09:34:41 12011 1

原创 git命令行工具实现sourceTree上的各个功能

开发中一直使用sourceTree这个可视化的工具来进行git的操作,但最近项目中有初学者使用命令行去操作,然后发现自己竟然很多操作的命令都不确定或不知道,所以特地的学习学习。首先如果想查看sourceTree中那个漂亮的graph。可以使用以下命令。git log --graph --all接着,我修改了代码,stage代码git add package.json然后想把package.json回退回去git reset -- package.json现在我提交一个文件,这个就不

2020-12-05 18:53:28 544

原创 手把手教你用docker部署自己的npm私服verdaccio

文章目录前言开始配置加速安装verdaccio优化全局配置项目配置便捷工具备注前言在工作开发的过程中,不可避免的会封装一些自己的组件,工具库,甚至脚手架等等。但受限于公司的规定,或者其他原因,这些封装好的npm包一般不会对外去发布,所以我们会选择架设自己的npm私服。主流的npm私服部署方案包含verdaccio以及nexus。前者是基于nodejs的私服,而后者用途更为广泛,比如maven私服基本会基于nexus。个人感觉verdaccio更小而美一些,所以本文主要介绍verdaccio的部署方式。

2020-12-05 14:19:30 2747 1

原创 如何在terminal / powershell中打开文件夹/explorer

有两种方式$ explorer .# 或者$ ii ..这个点是指当前的目录同样的,在mac的terminal中使用如下的命令可以打开$ open .

2020-12-05 12:09:31 2840 1

原创 如何更换yarn或者npm镜像源

yarn 或者 npm 的默认镜像源比较慢。可以如下更新npm config get registry // 查看源npm config set registry https://registry.npm.taobao.org/ // 设置源yarn config get registry // 查看源yarnyarn config set registry https://registry.npm.taobao.org/ // 设置源yarn以上的设置是全局的。即设置之后就全局有效了

2020-12-04 16:11:25 1364

原创 vue中更好的按需引入echarts

echarts很大。如果项目中直接全局引入,在不开启gzip的情况下,打包的体积会增加1M。一下未引入之前引入之后import echart from 'echarts'Vue.prototype.$echart = echart;实际上,有个简单的按需引入方式,比如你的项目是vue-router的项目,不同组件是异步加载的,若在组件中引入echarts。那么就不至于所有的路由页面都因为echarts而变慢。比如我再about页面中引入echarts可以看到仅仅是about的体积变大

2020-12-02 23:05:22 924 1

原创 MySql server startup error ‘The server quit without updating PID file ‘

导致这个问题发生的原因貌似有很多,所以关键是定位到真正的问题。mysql启动报错会生成一个.err文件。我的centos的该文件存在于/var/lib/mysql/*.err。打开这个文件就会看到启动错误的原因。我这里是:2020-12-01 22:45:51 18295 [Note] InnoDB: Using atomics to ref count buffer pool pages2020-12-01 22:45:51 18295 [Note] InnoDB: The InnoDB memo

2020-12-01 23:25:37 190

原创 uni-app在小程序中无法发起网络请求

按照官方的例子配置了网络请求如下uni.request({ url: url, method: 'POST', data});发现在network根本没有网络请求,后来查看后台日志发现请求根本没有发出去。进而定位到应该是uni.request配置的问题。后来查阅文档,尝试添加header如下: uni.request({ url: url, method: 'POST', header: { 'content-type': 'application/json' }, da

2020-12-01 21:35:50 5102

原创 图文详解:阿里云域名配置免费https/SSL证书

文章目录https简介证书购买配置证书注意事项https简介首先简单说一下https的原理。即服务端与客户端(浏览器)如何保证数据是加密传输的呢?我记得有个经典的例子:服务端发给客户端一个打开的锁和装数据的箱子客户端将数据放入并锁上箱子,然后发给服务端。很经典吧,但如果第一步服务端发给客户端的时候被黑客拦截了,并替换了黑客自己的箱子和锁。客户端是无法甄别的。所以在上述的过程中还需要对锁进行签名,即比如王麻子牌锁,客户端是是信任的。而其他牌子的锁,浏览器是会给予不安全的提示的。以上描述的加

2020-12-01 12:29:29 4420 1

rdpwrap.ini.zip

rdpwrap.ini.zip

2021-04-10

typescript-handbook.epub

英文的哦,但难不住做为程序员的你

2021-03-06

typescript-handbook.pdf

英文的哦,但难不住做为程序员的你

2021-03-06

verdaccio的配置文件config.yaml

verdaccio的配置文件config.yaml下载,改文件可能你并不能直接访问的到。如果有更新,留言告诉我来更新这个文件

2020-12-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除