使用 Rollup 构建 Vue2 & 3 的通用组件库
1. 背景Vue3 在 Vue2 的基础之上做了很大的变更,因此编译后的 Vue2 组件并不能适用到 Vue3 项目中,这对团队将来升级 Vue 框架会是一种极大的限制,同时新项目也可能因为无法复用旧项目的资产而导致放弃使用全新的框架。 好在 Vue3 的 Composition API 移植到了 ...

线性代数的本质
1. 向量究竟是什么视频 Youtube 二维向量的乘法: 二维向量的加法: 2. 线性组合、张成的空间与基视频 单位向量,用字母 + hat 来表示 通过改变所选择的标量,可以得到任何的二维向量: 如果只让其中一个标量变化,会画出两条相交的直线: 但是如果两个单位向量重叠,产生的新向 ...

Games101 闫令琪现代计算机图形学入门学习笔记
Lecture 03. 变换(二维与三维)课件 缩放缩放的数学形式表现: x'=s*x+0*y y'=0*x+s*y 矩阵形式: 矩阵相乘的条件是:前一个矩阵的列数必须等于后一个矩阵的行数。在这种情况下 反转 切变 旋转变换 推导过程: 注意:旋转的中心永远是坐标轴的原点: ...

如何在 CJS 中使用 ES Module
1. 前言在 Nodejs 中,我们可以使用 import 来引入 CommonJS 和 ESM 的包,但是无法使用 require 来引入 ESM 规范的包,此时会出现 ERR_REQUIRE_ESM 的报错。 让我看看那哪个语言有两种包引入规范还不互相兼容,哦原来是 NodeJS 为了解决 ...

ts-node 在某些 Nodejs 版本中报错 Unknown file extension
表现:使用 ts-node 执行 esm 规范的模块时报错: 1TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /../../xxx.ts 修改 tsconfig.json 后仍然 ...

pnpm 的 workspace 管理
吐槽:pnpm 文档真的是一个大版本一个不一样,workspace 的管理指令都变了好几次了,每次都要重新查找,因此在这里写一个备忘,防止 pnpm 挖坑。 如何添加 workspace在根目录创建 pnpm-workspace.yaml。 官方文档 如何指定在某个工作区执行 install、run ...

flex 属性值及其具体表现
1. flex-basisMDN flex-basis 指定了 flex 元素在主轴方向上的初始大小,如在 flex-direction: row 上描述的是其宽度,在 flex-direction: column 上描述的是其高度。 语法: 123456789101112131415161718/ ...

在移动端中使用 100vh 导致页面出现滚动条的解决方法
前言现在有如下的 HTML 结构: 12345<body> <div class="header">Header</div> <div class="content">Content</div> &l ...

Typescript Trick
自定义类型保护函数当一个类型是联合类型时,对其进行类型判断将变得困难,如: 12345678910111213141516171819interface Foo { foo: number; common: string;}interface Bar { ...

从 Webpack 产出分析 Webpack 如何处理 ESM 以及 CJS 模块引用
获取未经压缩的 Webpack 打包产出为了获取 webpack 的原始产出,我们要对 webpack 配置进行如下操作: 移除 babel-loader; optimization.minimize 设置为 false 以关闭 teser 对代码的压缩; optimization.concate ...