- 博客(467)
- 收藏
- 关注
原创 微信小程序报错 Error: module ‘prebundle/vendors-node_modules_taro_weapp_prebundle_react-dom_js.js‘ is not d
使用taro进行编译项目的时候。因为是watch编译小程序,所以改动代码之后会立刻编译,然后所以微信小程序开发工具需要不停的进行重新加载。而加载过程中微信小程序开发者工具就会经常出问题。比入就会报上面这个错误。
2024-12-12 11:20:30
469
原创 H5底部输入框点击弹起来的时候被软键盘遮挡bug
就是输入框在底部,然后点击输入框的时候,软键盘弹起来了,但是输入框没有跟着一起弹起来,被软键盘档住了。这个bug有下面几个特点。
2024-10-29 15:36:53
901
原创 类型 ‘bigint‘ 无法分配给 ReactNode
经过排查原来是用的monorepo方法,导致项目内部的@types/react @types/react-dom和全局的版本不一致导致的,把两个版本升级为一个版本解决了。
2024-09-06 16:08:33
291
原创 nextjs`x-forwarded-host` header withvalue localhost:3000` does not match `origin` header with value
origin。
2024-05-30 20:44:59
347
原创 切分支解决切不走因为未合并的路径如何解决
改代码的时候改做分支了,本来是在另一个分支上面改代码,结果改到另一个放置上面,然后想着使用git stash进行保存,然后切到另外一个分支再pop,结果不行。报这个错误,导致切不过去,因为我这边pop代码的时候,和本地有了冲突,我这边解决了冲突,所以会有这个双方修改的问题。这两个文件就是出现冲突的文件。
2023-09-06 20:06:37
1216
原创 vuejs源码阅读之代码生成器
代码生成器是模版编译的最后以后,它的作用是将AST转换成渲染函数中的内容,这个内容可以称为代码字符串。代码字符串可以被包装在函数中执行,这个函数就是我们通常说的渲染函数。渲染函数被执行之后,可以生成一份VNode,而虚拟DOM可以通过这个VNode来渲染视图。
2023-07-30 21:02:58
1022
原创 vuejs源码阅读之优化器
前面讲过vuejs中解析器是把html模版解析成AST,而优化器的作用是在AST中找到静态子树并打上标记。静态子树是指的那些在AST中永远不会发生变化的节点。例如,一个纯文本节点就是静态子树,而带变量的文本节点就不是静态子树,因为他会随着变量的变化而变化。标记静态子树有两点好处。
2023-07-29 21:46:06
505
原创 vuejs源码之解析器
解析就是将模版解析成AST。比如下面这个代码,然后转成AST之后是这个样子。它是用javascript对象来描述一个接待您,一个对象表示一个节点。对象中的属性用来保存节点所需的各种数据。比如parent属性保存了父节点的描述对象,children属性是一个数组,里面保存了一些子节点的描述对象,type属性表示一个节点的类型。很多独立的节点通过parent属性和children属性连在一起。就变成了一个树。这个就是AST。
2023-07-23 15:32:33
410
原创 vuejs源码之模版编译原理
之前我们说过虚拟dom,也就是虚拟dom拿到vnode后所做的事情,而模版编译是如何让虚拟dom拿到vnode。模版编译的目标就是生成渲染函数,而渲染函数的作用是每次执行它,它就会使用当前最新的状态生成一份新的vnode,然后用这个vnode进行渲染。
2023-07-22 22:40:03
240
原创 git将原来一个分支默认的源从一个分支改到另外一个分支命令
之前开发总是云端创建一个分支,然后拉取到本地,本地也会有个分支,但是这样有个问题,如果master有代码更新,我们要更新的时候需要每次在云端把代码从master合并到目标分支,然后本地再拉取下来,非常的麻烦。后来觉得还不如,我本地每次都新建一个分支,用来开发当前的功能。然后我push代码到master,cr,但是不和入。
2023-07-20 20:39:25
333
原创 navigator.mediaDevices.getUserMedia js录音注意事项
navigator.mediaDevices.getUserMedia 使用这个api来实现js录音,这个必须是https环境才行。
2023-07-18 19:29:40
302
原创 vuejs源码之虚拟dom中的vnode
在vuejs中,有一个Vnode类使用它可以实例不同类型的vnode实例,而不同类型的vnode实例各自表示不同类型的dom元素。例如dom元素有文本节点,元素节点,注释节点等。tag?children?text?。。这是vnode的构造函数。他其实是一个js节点描述对象。描述了怎么样去创建真实的dom节点。
2023-07-16 15:35:49
668
原创 【vueJs源码】阅读之vm.$watch函数
我们经常使用watch肯定知道它,他和computer一样都是数据发生变化都会触发它。今天我们就来了解一下它的原理。
2023-07-15 15:43:03
483
原创 fatal: ambiguous argument ‘HEAD~1‘: unknown revision or path not in the working tree.
我们在git diff的时候发现有这个问题。
2023-07-14 17:05:51
2647
原创 vue源码阅读之什么是虚拟dom
所谓虚拟dom,就是用一个js对象来描述一个dom节点,比如下面这个示例:长这个样子,是一个对象来描述一个dom节点。比如这个tab是div,是表示元素的标签,text属性是他的文本内容,children是他的子元素列表。还有它的data属性,key属性,parent属性,你能想到的dom节点的所有属性都有表示。然后我们展开他的children属性。也是同样的结构,描述这个节点下面有多少节点,顺序排列,这样就可以描述整个页面元素。这个用js对象表示的dom节点就叫做虚拟dom。
2023-07-09 23:26:19
178
原创 vue对于数组的数据监听变化和object是不一样的吗?
我们知道vue对于数组的数据监听变化和object是不一样的,因为我们常说的Object.defineProperty是对象上面的方法,所以对于array数组需要实现另外一套变化侦测机制。今天我们就来研究下。
2023-07-08 21:50:21
414
原创 vue源码阅读之Watcher类
我们上次分析vue源码讲的是收集依赖,数据变化之后我们把依赖收集到dep类中,通过这个管理器进行管理。里面有一个subs数组,用来存放依赖,并且定义了几个实例方法用来依赖进行添加,删除,通过操作。比如addSub,removeSub,depend、notify等方法。
2023-07-01 17:15:28
569
原创 vue源码依赖收集dep
我们之前讲了vue源码的结构还有vue的数据怎么知道变化的,那么我们知道数据发生变化之后我们怎么去更新视图了。视图那么大,到底更新哪块呢?总不能视图发生变化,我们就把所有的界面都更新一遍,这样太耗性能了,体验也非常的不好。
2023-06-26 23:03:18
190
原创 vue源码阅读之Observer
我们上次学习了vue数据驱动的概念,以及简单的vue怎么知道数据更新,然后采取行动的。今天我们就来继续深入学习,vue怎么把数据和视图给绑定在一起的,数据发生变化,视图怎么会自动发生变化的。
2023-06-18 23:28:03
771
原创 vue2.6源码学习:数据变化监听原理之数据驱动视图(observer)
上次我们看vue2.6源码的时候,大概看了一下整体的项目结构目录。主要是里面的Observer和vdom这两个文件夹。也是vue里面最核心的两个文件夹,今天我们继续来学习。
2023-06-17 14:59:09
1067
原创 深度学习框架(Pytorch)学习第1步:包管理系统Anaconda的安装
PyTorch是一种构建深度模型功能完备的框架。通常用于图像识别和语言处理等。使用Python编写,学习和使用起来相对简单。PyTorch的独特之处在于,它完全支持GPU。并且使用反向模式自动微分技术,可以动态修改计算徒刑。使得其成为快速实验和原型设计的常用选择。
2023-06-11 16:42:42
627
原创 git提交之后再pull导致很多代码被修改,但是修改又不是你修改的
这样变基到当前仓库分支最新的提交,并将本地的提交应用到最新的提交之上,与普通git pull命令不同,git pull --reabse会将本地的提交变基到最新的提交之上,而不是将本地的提交和远程的提交合并。你本地没有拉master代码,但是你本地提交了一个评审,但是还没和入,这个之后pull一下会把你上次代码更新到这次所有的代码都进行一个对比,如何提交这个。git提交之后再pull导致很多代码被修改,但是修改又不是你修改的,导致你本地很多修改,怎么抛弃掉这些修改呢。然后我们本地执行下面这个命令。
2023-06-01 15:14:55
1319
原创 process.env.NODE_ENV可以但是process.env.xxx别的就不行
process.env.NODE_ENV可以但是process.env.xxx别的就不行就会报这个报错信息。看了一下process.env.NODE_ENV这个是webpack编译的时候加入的,而process.env.xxx是用new webpack.DefinePlugin定义的全局变量。所以就在编译的之后,因为我这个库要在浏览器上执行,所以没有process这个模块。
2023-05-30 10:32:55
304
原创 react-scripts Close one! Eject aborted
已经做了npm run eject还是不行。然后试了pnpm eject。使用pnpm run eject也不行。因为我用的是pnpm。
2023-05-11 16:31:40
137
原创 二次ssr渲染如何优于csr二次渲染
我们先wirte的骨架屏目前太大,导致白屏时间过长,那就把骨架屏给分段给write。这样二次渲染的骨架屏也能提前出来,不过这个骨架屏现在还是一点一点出来的,没有客户端渲染一次出来。而ssr,因为html片段慢,就算二次,会导致白屏时间长,如何才能让ssr请求更短。还有一条路就是云端内部请求接口耗时提升。这块需要解决,要比浏览器请求快很多。其实还是要优化服务端渲染的白屏时间,所以还是要把第一次的渲染弄的快一点。目前问题是二次渲染csr就是接口耗时。而js缓存可以提供更快的首屏。end之后就没法再发请求。
2023-04-26 11:44:27
95
原创 spawnSync /bin/sh ENOENT
使用child_process.execSync报spawnSync /bin/sh ENOENT。ENOENT是Error No Entry 的缩写。把这个cwd注释掉就好了。
2023-04-20 17:33:47
1217
原创 pnpm安装的模块,在全局.pnpm下面有这个模块,在业务页面就找不到这个模块
在本地代码库中有3个包,使用pnpm管理这3个package,然后pnpm i之后,页面里面安装包,是通过软链的方式到了全局的.pnpm模块下面。就找不到。直接写模块的.pnpm绝对路径是可以找到的。但是不直接写就找不到。然后直接写模块也可以,但是写模块内部路径的文件就找不到了。
2023-04-18 17:33:42
1189
原创 如何使用爷爷辈的node_module模块执行命令
本来使用npx但是发现npx在当前目录没有或者全局目录没有,会自动安装模块,然后再卸载不符合要求。所以如果不想全局安装解决这个问题,可以采用下面这两个方法。
2023-04-14 16:56:50
292
原创 http-proxy-middleware ECONNRESET报错 at new NodeError (internal/errors.js:322:7) at writeAfter
http-proxy-middleware ECONNRESET报错,是因为nodejs版本不匹配,需要两个设置版本匹配之后。然后按照新的语法书写就OK了。
2023-04-10 16:00:21
774
原创 组件库组件提供函数直接调用
当直接通过函数调用的时候,需要往全局定义一个function,然后去控制这个function,控制他的显示和隐藏。这里面的vueInstance就是我们实际实现的vue组件代码。在组件里面去管理,创建这个组件,然后去显示,传入原有的参数。这个函数内部去写就行了,去设置这个组件的控制显示的属性即可。现在原理搞清楚了,就是要给用户提供一个show和hide。然后创建div,把这个元素给append到页面中去。然后创建的vue组件之后把我们的数据给塞进去。
2023-03-29 14:21:47
159
原创 使用pnpm管理多个代码库vue版本不一致,代码库编译的vue版本用了另外一个库的vue版本导致编译失败
A编译的之后用了B版本库依赖的vue2.5版本,错误了,但是vue-template-compiler又用的是他本身的vue2.6的,导致两者版本不匹配,所以就出了问题。一个代码库我们假设叫他为A使用的是vue2.6,但是另外一个代码库我们假设他叫B依赖vue2.5,然后A代码库有依赖了B代码库,然后这时候vue版本就混乱了。vue是线上运行阶段也要用的东西。但是为啥vue用的是错的,vue-template-compiler是对的,没有都用错。
2023-03-27 10:35:21
868
原创 npm报错seems to be corrupted. Trying one more time.
npm安装一直失败,不知道什么原因,感觉就是npm一会12一会14然后安装包,缓存内容导致的问题。这样重新安装了nodejs然后解决了这个问题。解决办法删除全局的nvm。
2023-03-22 19:47:39
2913
1
原创 ts第三方模块没有types文件按需导出有问题,找到组件,显示undefined
经过研究,原来这个第三方包使用的是commonjs2的规范,commonjs2就是这种module.exports = entry_return形式,而commonjs2是commonjs: exports[‘MyLibrary’] = entry_return这种形式。接下来就是排查下,怎么让ts支持一下这种模块的导入,直接搜索搜不到这类答案,直接导入*发现是有个default属性,无法使用,default上面的也是原始组件,不是想要的导出的方式。然后根据这个就去看第三方包的编译产出是什么形式,
2023-03-14 11:36:23
709
原创 mac设置node默认版本
比如我打开命令行iterm,然后执行node -v,发现默认版本是13,我想设置到12.然后每次打开命令行的时候就是node 12版本了。然后编辑 ~/.bash_profile。可以使用nvm执行下面命令。
2023-02-02 16:29:35
1161
原创 vscodevue文件高亮显示不对问题
我就去搜索vscode装了什么vue相关的插件,结果发现我不止装了vetur这个插件,还装了vue的插件,这个vue插件卸载之后就好了。分析原因:vscode的vue文件高亮是根据插件来显示的。箭头指的那块是白色的,因为我修复了,所以这块显示正常了。也就是说vue高亮插件装一个vetur这个插件就够了。不知道为什么我的vscode的高亮显示不对,
2023-01-08 14:52:46
1199
原创 sass添加全局函数
增加这个,这样全局就会有对应的scss函数,直接在webpack的专门的scssloader里面是不生效的。需要指出因为我们是vue文件里面使用scss,所以这块scss的解析需要在vue-loader里面去解决。所以配置scss全局函数我们需要在vue-loader里面去添加。这里的vueLoaderConfig就有对scss语法的配置。里面关键在于utils.cssLoaders这个函数的实现。这是webpack.base.conf.js。这是vueloaderconf。例如下面这种配置就是不生效的。
2023-01-07 16:19:50
461
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人