英文 | https://javascript.plainenglish.io/9-best-vanilla-javascript-utilities-libraries-ff752592dfb5
翻译 | 杨小二
1、cypress
地址:https://github.com/cypress-io/cypress
对浏览器中运行的任何内容进行快速可靠的测试。
- Cypress允许你创建可以与单击按钮交互的测试,填写表格,这个很好地支持定期更新。
- 唯一的缺点是你会发现Cypress的学习曲线有点宽,因为它需要一些时间,这取决于你之前测试JavaScript应用程序的知识。
- 此外,另一个主要问题是它目前不支持Safari。
2、 rollup
地址:https://github.com/rollup/rollup
下一代 ES 模块打包器。
- Rollup是一个模块打包器,它使用标准化的 ES 模块格式进行代码,而不是以前的解决方案,例如CommonJS & AMD。
- 它可以轻松优化ES模块以在现代浏览器中更快地本地加载,并放置允许ES 模块工作流的遗留模块格式。
- 由于支持tree shaking,它是一个很棒的模块打包器,虽然不像Parcel或Webpack那样出名,但它仍然随着响应式更新而增长。
3、day.js
地址:https://github.com/iamkun/dayjs
2KB 不可变日期和时间库。
- 在JavaScript 中,你最有可能使用日期和时间库构建应用程序,而days.js是Moment.js的绝佳替代品。因为它更轻巧并且具有所有相同的 API。
- 文档也很棒,新开发人员可以在更短的时间内轻松适应day.js。
4、 immer
地址:https://github.com/immerjs/immer
通过改变当前状态来创建下一个不可变状态。
- 非常轻量级的包(5KB),有助于处理React应用程序中的不可变状态,我们只需要通过不干扰原始状态来更改虚拟状态,然后,一旦所有更改完成,它就会推送下一个状态。
- 它的样板代码很少,因此你的代码看起来更简洁,结构更简洁。
5、jsdoc
地址:https://github.com/jsdoc/jsdoc
用于 JavaScript 的 API 文档生成器。
- 如果你需要记录你的个人功能,那么jsdoc是一个很好的工具。生成的文件非常基础,用于文档目的,你可以在短时间内拥有自己的功能文档。
- 该文档对于新开发人员来说也很棒且易于使用,并且在开始使用jsdoc时不需要太多经验。
- 特别是如果你在团队中工作,它会提高你工作流程的整体生产力,因为你已经定义了自己的功能。
6、ramda
地址:https://github.com/ramda/ramda
实用的JavaScript函数式 。
- Ramda强调更纯粹的函数风格,不变性和无副作用的函数是其设计理念的核心,帮助你用简洁优雅的代码完成工作。
- 这些函数是自动柯里化的,这使你不提供最终参数即可从旧函数构建新函数。
- 唯一的缺点是它可能很快变得不可读,因此建议避免链接太多函数。
7、 p-limit
地址:https://github.com/sindresorhus/p-limit
以有限的并发运行多个 Promise 返回和异步函数。
- 如果你想限制 JavaScript 中的 promise 或同时阻止来自服务器的所有请求调用,那么这个库适合你。
8、Akita
地址:https://github.com/datorama/akita
为 JavaScript 应用程序量身定制的状态管理库。
- 在开始之前你需要知道RxJS风格的observables以及基本的TypeScript语法。
- 如果你正在使用 Angular 应用程序,建议使用 Akita,因为与ngrx和ngxs相比,它更容易。
9、js-cookie
地址:https://github.com/js-cookie/js-cookie
用于处理浏览器 cookie 的轻量级 JavaScript API。
- 这个库使代码在处理 cookie 时更加清晰和可用,你可以使用一个简单的 API 来管理 cookie,其中包括开发人员需要的一切。