根据工作中遇到的场景总结了一些JavaScript中常用的工具库和解决方案。本文很大一部分参考了字节大佬大史不说话的书籍《前端跨界开发指南》。非常适合当工具书,已经入手收藏了。
前端常用库、方案
- 字符串、数字、数组、对象的各种常用方法:
loadsh - 关于时间日期处理的一切:
moment.js(时间格式化、计算时间差)、day.js、date-fns(支持按需引入,函数式编程) - Excel操作相关:
xlsx(json与excel互相转换)、xlsx-populate(excel各种操作,支持样式改变) - vue项目国际化配置:
vue-i18n - 模拟数据:
Mockjs:模拟数据接口返回,可以用在浏览器环境和node端,支持自定义扩展(升级版接口管理工具rap2,json schema,实现原理其实就是模板语法) node:前端工程化,中间层,ssr渲染,协作链接(BackstopJSUI自动化回测、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