- 博客(6)
- 收藏
- 关注
原创 Webpack 插件深度实践】从 emit 钩子到 Babel 插件,我是如何实现 uniapp 的分包异步化的
官方给出的解决方案是“分包”,但普通的分包只是解决了代码存放的问题。上述做法都是在输出阶段(emit)去操作被编译“混淆”后的代码,依赖编译产物,是极其脆弱的方案。最好的做法是:在模块构建阶段介入,通过 Loader 和 AST 来实现函数名的替换。原因:在 Webpack 的 watch 模式下 emit 阶段修改了资源内容会触发一次新的编译,在新的编译中,插件再次运行,替换逻辑。最简单的方法是在替换后的代码中加入一个“标记”,并让正则表达式忽略带有这个标记的代码。如此往复,形成无限的重新编译循环。
2025-06-30 08:00:00
763
原创 npm 和 npx 的区别
它允许开发人员执行 npm 注册表上可用的任何 Javascript 包,甚至无需安装它。如果我们的项目需要依赖包,则使用 npm。代表节点包管理器,npx 是一个执行包的工具。npx 是一个 npm 包运行器,它的工作是从注册表中执行包而不安装它。可执行文件,全局环境也没有该执行文件的话,就会帮我们安装 create-react-app 包再帮我们删除。其实 vue-cli-service 执行的也是 node_modules 中 bin 目录下的可执行文件。的缩写,是 NodeJs 的默认包管理器。
2025-03-29 00:50:44
1198
原创 【重磅】无侵入式一键实现监听微信小程序手势左滑事件!!
在开发微信小程序时,很多人都会遇到这样的需求:例如,监听用户左滑返回操作,并弹窗确认是否真的要退出页面。当我们就会吭哧吭哧的去百度寻找相关的资料,但得到的答案都是不能。然而是真的不能监听手势返回吗?答案是否定的,利用 page-container 组件是可以实现监听手势返回,。下面是该组件描述:小程序如果在页面内进行复杂的界面设计(如在页面内弹出半屏的弹窗、在页面内加载一个全屏的子页面等),用户进行返回操作会直接离开当前页面,不符合用户预期,预期应为关闭当前弹出的组件。
2024-11-28 10:33:52
1370
2
原创 npm 和 pnpm 的区别
同时,如果某个直接依赖A依赖于其他的依赖包B,那么依赖B会作为间接依赖,安装到依赖A的文件夹 node_modules 中,然后可能多个包之间也会有出现同样的依赖递归的,如果项目一旦过大,那么必然会形成一棵巨大的依赖树,依赖包会出现重复,形成嵌套地狱。“幽灵依赖”指的是在项目内引用未在 package.json 中定义的包。npm 中使用语义化版本来控制版本依赖包的版本,比如 ^~>=< 之类的范围符号,不过文中版本号的解析方式不是重点,只需要知道如果使用范围版本号,npm 会安装范围内可用的最新版本。
2024-10-27 13:40:21
844
原创 带你彻底了解微信小程序的createIntersectionObserver,实现长列表性能优化、图片懒加载、吸顶等等操作
大家好,我是百慕大,废话不多话直接进入主题。创建并返回一个 IntersectionObserver 对象实例。在自定义组件或包含自定义组件的页面中,应使用 来代替。Object Options(选项)属性类型默认值必填说明thresholdsArray[0]否一个数值数组,包含所有阈值。。initialRationumber0否初始的相交比例,如果调用时检测到的相交比例与这个值不相等且达到阈值,则会触发一次监听器的回调函数。observeAl
2024-10-24 12:10:38
1467
原创 uniapp(vue3 版本) 中如何优雅的解决 app.onLaunch 与页面 onLoad 异步问题
支持的自定义钩子执行时机对应 uniapp 的 onLaunch对应 uniapp 的 onLoad渲染时机为 Vue2 的 created对应 uniapp 的 onShow对应 uniapp 的 onMounted对应 uniapp 的 onReady开源地址。
2024-10-24 12:08:04
4467
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人