大家好,我是你们的 猫哥,那个不喜欢吃鱼、又不喜欢喵 的超级猫又在线营业啦 ~
平时如何发现好的开源项目,可以看看这篇文章:GitHub 上能挖矿的神仙技巧 - 如何发现优秀开源项目
1. puppeteer
Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过 DevTools 协议控制 Chromium 或 Chrome。Puppeteer 默认以 headless 模式运行,但是可以通过修改配置文件运行“有头”模式。
可以在浏览器中手动执行的绝大多数操作都可以使用 Puppeteer 来完成!
下面是一些示例:
生成页面 PDF。
抓取 SPA(单页应用)并生成预渲染内容(即“SSR”(服务器端渲染))。
自动提交表单,进行 UI 测试,键盘输入等。
创建一个时时更新的自动化测试环境。使用最新的 JavaScript 和浏览器功能直接在最新版本的Chrome中执行测试。
捕获网站的 timeline trace,用来帮助分析性能问题。
测试浏览器扩展。
https://github.com/puppeteer/puppeteer
2. nodebestpractices
Node.js 最佳实践
这是对 Node.js 最佳实践中排名最高的内容的总结和分享
目录
项目结构实践 (5)
异常处理实践 (11)
编码规范实践 (12)
测试和总体质量实践 (8)
进入生产实践 (16)
⭐ 新: 安全实践(23)
Performance Practices (coming soon)
https://github.com/goldbergyoni/nodebestpractices
3. nvm
nvm 是 node 的包管理工具。由于在打开不同的项目时,不同的项目在安装依赖时可能会和 node 版本有关,所以这就需要我们在不同的项目下使用不同的 node 版本。
nvm 就是一个比较好用 node 管理工具,切换 node 版本。
使用也极其简单
nvm install stable ## 安装最新稳定版 node
nvm install <version> ## 安装指定版本
nvm uninstall <version> ## 删除已安装的指定版本
nvm use <version> ## 切换使用指定的版本node
nvm ls ## 列出所有安装的版本
nvm ls-remote ## 列出所有远程服务器的版本
nvm current ## 显示当前的版本
nvm alias <name> <version> ## 给不同的版本号添加别名
nvm unalias <name> ## 删除已定义的别名
nvm reinstall-packages <version> ## 在当前版本 node 环境下,重新 全局安装指定版本号的 npm 包
nvm alias default [node版本号] ##设置默认版本
https://github.com/nvm-sh/nvm
4. nest
用于构建高效且可伸缩的服务端应用程序的渐进式 Node.js 框架。
完美支持 Typescript
面向 AOP 编程
支持 Typeorm
高并发,异步非阻塞 IO
Node.js 版的 spring
构建微服务应用
https://github.com/nestjs/nest
5. yarn
快速、可靠、安全的依赖管理工具。
速度超快。Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。同时利用并行下载以最大化资源利用率,因此安装速度更快。
超级安全。在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。
超级可靠。使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。
https://github.com/yarnpkg/yarn
6. playwright
Playwright 是由微软公司 2020 年初发布的新一代自动化测试工具,相较于目前最常用的 Selenium,它仅用一个 API 即可自动执行 Chromium、Firefox、WebKit 等主流浏览器自动化操作。作为针对 Python 语言纯自动化的工具,在回归测试中可更快的实现自动化。
Playwright 的优势
Selenium 需要通过 WebDriver 操作浏览器;Playwright 通过开发者工具与浏览器交互,安装简洁,不需要安装各种 Driver。
Playwright 几乎支持所有语言,且不依赖于各种 Driver,通过调用内置浏览器所以启动速度更快。
Selenium 基于 HTTP 协议(单向通讯),Playwright 基于 Websocket(双向通讯)可自动获取浏览器实际情况。
Playwright 为自动等待。等待元素出现(定位元素时,自动等待 30s,等待时间可以自定义,单位毫秒)、等待事件发生。
https://github.com/microsoft/playwright
7. hexo
快速、简洁且高效的博客框架
超快速度 Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染。
支持 Markdown Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件。
一键部署 只需一条指令即可部署到 GitHub Pages, Heroku 或其他平台。
插件和可扩展性 强大的 API 带来无限的可能,与数种模板引擎(EJS,Pug,Nunjucks)和工具(Babel,PostCSS,Less/Sass)轻易集成
https://github.com/hexojs/hexo
8. nodemon
Nodemon 是一款非常实用的工具,用来监控你 node.js 源代码的任何变化和自动重启你的服务器。
Nodemon 是一款完美的开发工具,可以使用 npm 安装。
设计原则
更少的标志更好
适用于所有平台
更少的功能
让个人建立在 nodemon 之上
提供所有 CLI 功能作为 API
贡献必须通过测试
https://github.com/remy/nodemon
9. fastify
Fastify,快速并且低开销的 web 框架,专为 Node.js 平台量身打造。
高效的服务器意味着更低的基础设施成本、更好的负载响应能力和用户满意度。在不牺牲安全验证和便捷开发的前提下,如何知道服务器正在处理尽可能多的请求,又如何有效地处理服务器资源?
使用 Fastify 吧。Fastify 是一个高度专注于以最少的开销和强大的插件架构为开发人员提供最佳开发体验的 Web 框架。Fastify 受到 Hapi 和 Express 框架的启发。据我们所知,Fastify 是我们村最快的 web 框架之一,也是我们“全村的希望”!
https://github.com/fastify/fastify
10. sharp
高性能 Node.js 图像处理,调整 JPEG、PNG、WebP、AVIF 和 TIFF 图像大小的最快模块。使用 libvips 库。
由于使用了libvips ,调整图像大小通常比使用最快的 ImageMagick 和 GraphicsMagick 设置快 4 到 5 倍。
颜色空间、嵌入的 ICC 配置文件和 alpha 透明度通道都得到了正确处理。Lanczos 重采样确保质量不会因速度而牺牲。
除了图像大小调整之外,还提供旋转、提取、合成和伽马校正等操作。
大多数运行 Node.js >= 12.13.0 的现代 macOS、Windows 和 Linux 系统不需要任何额外的安装或运行时依赖项。
https://github.com/lovell/sharp
最后
推荐 9 个 Node.js 学习、进阶、debugging 分析、实战 的重磅开源项目
平时如何发现好的开源项目,可以看看这篇文章:GitHub 上能挖矿的神仙技巧 - 如何发现优秀开源项目
更多精彩项目,请看下方宝藏仓库,请慎入!
https://github.com/FrontEndGitHub/FrontEndGitHub
不知不觉,原创文章已经写到第 68 期了呢,几乎每一篇都是猫哥精心挑选的优质开源项目,推送的每一篇文章里面的项目几乎都是对前端开发很有帮助的。
原创不易,一篇优质的文章都是要肝几个晚上才能肝出来的,花费很多时间、精力去筛选和写推荐理由,大佬们看完文章后顺手点个赞或者转发吧,就当给猫哥一点鼓励吧。
往期精文
关注公众号:前端GitHub,回复 电子书 即可以获得下面 1000 本技术精华书籍哦,猫哥微信号:CB834301747 。
如果不想错过精彩内容,请多给本公众号点赞哦,这样就会先收到内容推荐的。