npm script

串行 or 并行

并行跑命令:&,在命令结尾加& wait,可以使用ctrl c关闭命令行来结束进程
串行跑命令:&&

控制日志输出

  • –silent(-s):输出尽可能少的日志
  • –verbose:显示尽可能多的状态,日志级别的输出,用于调试

Vueuse源码解读

本文不会放api的用法,建议先看看是怎么用的

写本篇文章时间间隔较长,所以代码版本不一

项目架构

采用monorepo的形式,项目目录下有多个子项目,下面放了资料链接和几处用法,其他本文不多赘述。

现代前端工程为什么越来越离不开 Monorepo?
为什么使用pnpm可以光速建立好用的monorepo(比yarn/lerna效率高)
pnpm workspace文档


【源码解读】模块懒加载(在使用时)

在看为什么vue文档能做到新内容可用更新(利用service worker)的时候,顺便看到了update-notifier(提示版本更新的库,实现方式:定时检查npm上的版本和本地package.json的版本对比,有差异就提示用户更新),看update-notifier源码的时候发现有很多lazyImport,觉得挺新奇,于是有了这篇文章

思想

为了提高应用的启动时间,在没有用到仓库的额外功能时不加载模块,所以将模块加载延迟到使用之前


跨平台的拖拽

crossvent:封装跨平台事件绑定的库

跨平台的触摸事件

利用crossvent封装绑定跨平台拖拽事件的方法touchy,以便支持移动端和pc端

根据环境获取的触摸事件名,用懒加载的方式替换掉touchy函数,之后绑定事件不需要再判断


【源码解读】Axios源码解析

工具类

bind

1
2
3
4
5
6
7
8
9
function bind(fn, thisArg) {
return function wrap() {
var args = new Array(arguments.length);
for (var i = 0; i < args.length; i++) {
args[i] = arguments[i];
}
return fn.apply(thisArg, args);
};
};

js准确倒计时

js准确倒计时

引入

如果用最初始的setTimeout递归实现定时器,一秒执行一次回调,则代码如下


如何给对象设置默认值

1.用 … 解构设置

在看compressor.js的时候,他用一个文件来存默认值,然后导出,最后用解构的方式,后面的值覆盖前面的方式设置默认值。当然也可以用Object.assign都是一样的