根据工作中遇到的场景总结了一些JavaScript中常用的工具库和解决方案。本文很大一部分参考了字节大佬大史不说话的书籍《前端跨界开发指南》。非常适合当工具书,已经入手收藏了。
前端常用库、方案
- 字符串、数字、数组、对象的各种常用方法:
loadsh
- 关于时间日期处理的一切:
moment.js
(时间格式化、计算时间差)、day.js
、date-fans
(支持按需引入,函数式编程) - Excel操作相关:
xlsx
(json与excel互相转换)、xlsx-populate
(excel各种操作,支持样式改变) - vue项目国际化配置:
vue-i18n
- 模拟数据:
Mockjs
:模拟数据接口返回,可以用在浏览器环境和node端,支持自定义扩展(升级版接口管理工具rap2
,json schema
,实现原理其实就是模板语法) node
:前端工程化,中间层,ssr渲染,协作链接(BackstopJS
UI自动化回测、DocLever
或Rap2
搭建API平台、提供日志)- 代码风格:
ESLint
、Prettier
- 函数式编程:
Ramda.js
easel.js
:canvas api js化操作YUIdoc
:根据jsdoc风格的注释生成文档Echart.js
、D3.js
:可视化工具库。D3.js
偏低层snap.svg
:svg操作库,类似jquery- 网页版PPT:
Impress.js
,Reveal.js
- 动画:
Velocity.js
(js复杂动画),animate.css
(css简单动画) - 缓动函数:
tween.js
,jQuery Easing Plugin
(velocity.js
) - 语音信号处理:
Recoeder.js
- 流媒体播放器:
video.js和官方扩展插件
(在浏览器中播放不同格式),ffmpeg
(多媒体处理模块,可以转换容器格式、通过添加参数的形式来改变流媒体的编解码方式,利用WebAssembly技术在浏览器中使用),Media Source Extension(浏览器用于支持多媒体播放的API),Bento4(提供的mp4info可以获取mp4的详细编码信息),jsmpeg.js
(如果MediaSource不支持音频或视频的编解码算法,可以在服务端利用ffmpeg等工具将音频和视频的编解码格式转换为MediaSource能够支持的格式。另一种方式脱离了MSE技术,要根据现有编解码格式规范自己来编写解码程序) - 命令行制作工具:
Commander.js
(Git风格命令行工具,“主命令+子命令+参数”)和Inquirer.js
(使用问答的模式来收集命令参数) - shell脚本:
shell.js
(Shelljs,是基于node API实现的可以在Windows、Linux和Mac OS三大系统中使用的Shell工具) - Windows跨平台工具:
Cmder
(命令行强化),cross-env
(跨平台设置环境变量),MobaXterm
(增强版windows终端) - 进程守护工具:
pm2
- ssh连接:
node-ssh
(promise封装,更通用的ssh2模块) - 压缩包:
archiver.js
(promise封装) - 跨平台:基于Cordova的
lonic框架
,RN框架
(适合团队合作,需要原生专家参与),小程序
- 二进制消息格式:
protobuf.js
(消息体积更小,更通用) - 控制反转:
Inversify.js
- 游戏开发:
CreateJS
,Phaser
(游戏开发框架)、Egret
(白鹭)、微信小游戏
PreloadJS
(预加载资源)SoundJS
(音频资源的加载和播放)
- 物理引擎:
matter.js
、p2.js
- 神经网络:
brian.js
、TensorFlow.js
(深度学习框架) - 物联网、嵌入式:
Johnny-Five