发布于 2026-01-05 2 阅读
0

🚀2021年12月17日 GitHub 上十大热门 Web 开发者项目 Zod @gar/promisify Fast Node Manager (fnm) React Link Preview Sync Contribution Graph tinyspy Amazing Developers On YouTube Resources Version Next (Development branch)

🚀2021年12月17日,GitHub上面向Web开发者的十大热门项目

佐德

@gar /promisify

快速节点管理器(fnm下载次数 GitHub Actions 工作流状态

React 链接预览

同步贡献图

微型间谍

YouTube 上的优秀开发者

资源

版本 Next(开发分支)

《热门项目》以每周新闻简报的形式发布,请在Stargazing.dev注册,以确保您不会错过任何一期。

1.佐德

Zod 是一款基于 TypeScript 的模式验证工具,支持静态类型推断。它的设计理念是尽可能地对开发者友好,旨在消除重复的类型声明。使用 Zod,您只需声明一次验证器,它就会自动推断出静态的 TypeScript 类型。



2. 承诺

将整个类或对象 Promise 化。此模块利用 es6 代理和反射将对象或类实例中的每个函数 Promise 化。

GitHub 标志 wraithgar / gar-promisify

将整个类或对象 Promise 化

@gar /promisify

将整个对象或类实例 Promise 化

该模块利用 es6 Proxy 和 Reflect 将对象或类实例中的每个函数都 Promism 化。

它假定函数期望的回调函数是最后一个参数,并且它是一个错误优先的回调函数,只有一个值,即(err, value) => ...。这与节点的util.promisify方法类似。

为了让您能够将其作为满足所有 Promisify 需求的一站式工具,您还可以向其传递一个函数。该函数将使用 Node 的内置util.promisify方法像往常一样进行 Promisify 处理。

node 的自定义 Promise 函数也将被镜像,从而可以作为内置函数的直接替代品util.promisify

示例

承诺整个对象

const promisify = require('@gar/promisify')
class Foo {
  constructor (attr) {
    this.attr = attr
  }

  double (input, cb) {
    cb(
Enter fullscreen mode Exit fullscreen mode

3. 快速节点管理器 (fnm)

快速简洁的 Node.js 版本管理器,用 Rust 构建。

GitHub 标志 Schniz / fnm

🚀 快速简洁的 Node.js 版本管理器,用 Rust 构建

快速节点管理器(fnm下载次数 GitHub Actions 工作流状态

🚀 快速简洁的 Node.js 版本管理器,用 Rust 构建

速度飞快!

特征

🌎 跨平台支持(macOS、Windows、Linux)

✨ 单文件,安装简便,即刻启动

🚀 专为速度而打造

📂 适用.node-version.nvmrc文件

安装

使用脚本(macOS/Linux)

对于bashzshshell fish,有一个自动安装脚本

首先请确保您的操作系统上已安装curl和。然后执行:unzip

curl -fsSL https://fnm.vercel.app/install | bash
Enter fullscreen mode Exit fullscreen mode

升级

在 macOS 上,操作非常简单brew upgrade fnm

在其他操作系统上,升级过程fnm几乎与安装过程相同。为防止 shell 配置文件中出现重复项,请--skip-shell在安装命令中添加相应配置。

参数

--install-dir

设置 fnm 的自定义安装目录。默认值为$XDG_DATA_HOME/fnm(如果$XDG_DATA_HOME未定义,则$HOME/.local/share/fnm在 Linux 上回退到$HOME/Library/Application Support/fnm),在其他操作系统上则为 。


4. React 链接预览

一个 React 库,可以为你的链接生成漂亮的预览图。

GitHub 标志 Dhaiwat10 / react-link-preview

一个 React 库,可以为你的链接生成漂亮的预览图。

React 链接预览

一个 React 组件,用于渲染美观且完全可定制的链接预览。

演示 关注 @dhaiwat10 npm 版本 软件包下载 置信区间

演示

如何使用

安装软件包:

yarn add @dhaiwat10/react-link-preview

npm install @dhaiwat10/react-link-preview

导入并渲染预览:

import { LinkPreview } from '@dhaiwat10/react-link-preview';

const Home = () => {
  return <LinkPreview url='https://www.youtube.com/watch?v=dQw4w9WgXcQ' width='400px' />;
};
Enter fullscreen mode Exit fullscreen mode

如果组件不渲染任何内容,则表示无法抓取该 URL 的任何元数据。fallback如果您不想渲染组件,请提供一个空组件null

重要的

此软件包使用 Heroku代理(开源)来规避 CORS 问题。公共代理会接收大量流量(且存在速率限制),因此不建议用于生产环境。

推荐工作流程(适用于生产环境)

  • fork 代理仓库并托管您自己的副本。
  • 然后,您可以使用该customFetcher属性传递一个获取函数来获取……

5. 同步贡献图

生成空提交以匹配其他公共 GitHub 帐户的贡献。

GitHub 标志 kefimochi /同步贡献图

生成空提交以匹配其他公共 GitHub 帐户的贡献。

同步贡献图

GitHub 贡献图表,绘制具有不同深浅绿色的满正方形

Twitter:kefimochi

如何使用🚀

  1. 使用此仓库作为模板创建一个新仓库,并提供一个名称。
  2. 将你的新仓库克隆到本地,cd并复制到新创建的目录中。
  3. 它需要在您的计算机上安装NodeJS 和npm(或)。在终端中运行或。yarnnpm iyarn install
  4. 使用npm startyarn start命令可以触发一系列终端提示,这些提示将有助于配置。

    在 Windows 系统上,请从 Git Bash 运行它。

如果您之后改变了对这些提交的想法,您可以删除存储库,它们将从您的贡献图中消失。

终端提示信息详解,帮助您进行配置。

请求信息🌳

钥匙 描述 默认值
username 你想复制其图表贡献的用户名。
year 请提供您想要同步的年份username。目前不支持同步多个年份。 本年度
execute 让代码知道是否只需生成

6. tinyspy

这是一个仅 4KB 的软件包,用于实现极简且易于使用的测试,没有任何依赖项。该软件包最初是为 vitest 提供一个小型间谍库而创建的,但也可用于 jest 和其他测试环境。

GitHub 标志 tinylibs / tinyspy

🕵🏻‍♂️ nanospy 的精简版,功能更丰富

微型间谍

nanospy 的精简版,功能更丰富 🕵🏻‍♂️

一个10KB用于进行极简且简单测试的软件包,没有任何依赖项。该软件包最初是为在测试环境中使用而创建的,但它也可以在测试环境和其他测试环境vitest中使用。jest

如果您需要更多像 tinypool 或 tinyspy 这样的小型库,请考虑提交一份RFC。

安装

// with npm
$ npm install -D tinyspy

// with pnpm
$ pnpm install -D tinyspy

// with yarn
$ yarn install -D tinyspy
Enter fullscreen mode Exit fullscreen mode

用法

间谍

最简单的用法是:

const fn = (n) => n + '!'
const spied = spy(fn)
spied('a')

console.log(spied.called) // true
console.log(spied.callCount) // 1
console.log(spied.calls) // [['a']]
console.log(spied
Enter fullscreen mode Exit fullscreen mode

7. YouTube 上的优秀开发者

一份精选的 YouTube 优秀开发频道列表。其中包括 Web 开发、后端开发、前端开发、实时编码等等!


8. bignumber.js

一个用于任意精度十进制和非十进制算术运算的 JavaScript 库

GitHub 标志 MikeMcl / bignumber.js

一个用于任意精度十进制和非十进制算术运算的 JavaScript 库

bignumber.js

一个用于任意精度十进制和非十进制运算的 JavaScript 库。

npm 版本 npm 下载


特征

  • 整数和小数
  • 简洁但功能齐全的API
  • 比 Java 的 BigDecimal 的 JavaScript 版本更快、更小,而且可能更容易使用。
  • 8 KB 压缩并 gzip 压缩
  • 复制JavaScript Number 类型的`get` toExponential、` get` 和toFixed` get` 方法toPrecisiontoString
  • 包括 atoFraction和正确四舍五入的squareRoot方法
  • 支持加密安全的伪随机数生成
  • 无依赖项
  • 广泛的平台兼容性:仅使用 JavaScript 1.5 (ECMAScript 3) 特性
  • 完整的文档和测试集

API

如果需要更小更简单的库,请参阅big.js。它的大小不到本库的一半,但仅支持十进制数,并且只有一半的方法。此外,它的配置选项也比本库少,并且不允许使用NaN`or` 或 ` Infinity.`

另请参阅decimal.js,它除其他功能外,还增加了对非整数幂的支持,并对所有运算执行到指定有效数字位数。

加载


9. 倾覆

Capsize 功能使文本的大小和布局与其他屏幕元素一样可预测。它利用字体元数据,可以根据大写字母的高度调整文本大小,同时修剪大写字母上方和基线下方的空间。

GitHub 标志 寻找/倾覆

颠覆我们在CSS中对排版的定义。

倾覆

倾覆


Capsize 使文本的大小和布局像屏幕上的其他元素一样可预测。

利用字体元数据,现在可以根据大写字母的高度调整文本大小,同时修剪大写字母上方和基线下方的空间。

npm install @capsizecss/core
Enter fullscreen mode Exit fullscreen mode

用法

createStyleObject

返回一个 CSS-in-JS 样式对象。

  1. 导入时createStyleObject传递相关选项
import { createStyleObject } from '@capsizecss/core';

const capsizeStyles = createStyleObject({
  fontSize: 16,
  leading: 24,
  fontMetrics: {
    capHeight: 700,
    ascent: 1058,
    descent: -291,
    lineGap: 0,
    unitsPerEm: 1000,
  },
});
Enter fullscreen mode Exit fullscreen mode

注意:建议您安装@capsizecss/metrics包……


10. 韦尔达乔

Verdaccio 是一个简单易用的本地私有 npm 仓库,无需任何配置。无需搭建完整的数据库即可上手!Verdaccio 自带一个小型数据库,并能够代理其他仓库(例如 npmjs.org),同时缓存下载的模块。

GitHub 标志 verdaccio / verdaccio

📦🔐 一个轻量级的 Node.js 私有代理注册表

BannerHelp

Verdaccio代表和平,停止战争,在战争结束之前,我们将一直保持黄/蓝🇺🇦色。

verdaccio 标志

verdaccio gif

版本 Next(开发分支)

正在寻找 Verdaccio 6 版本?请查看分支。该组织内托管6.x的插件v6.x位于verdaccio/monorepo存储库中,而该next版本的插件则托管在此项目中./packages/plugins

请注意,不同分支的贡献指南可能有所不同。

Verdaccio是一个简单易用的本地私有 npm 仓库,无需任何配置即可上手。无需搭建完整的数据库即可开始使用!Verdaccio 自带一个小型数据库,并能够代理其他仓库(例如 npmjs.org),同时缓存下载的模块。对于希望扩展存储容量的用户,Verdaccio支持各种社区开发的插件,可以接入 Amazon S3、Google Cloud Storage 等服务,或者创建您自己的插件。

verdaccio(最新) verdaccio(下载) docker pulls 支持者 Stackshare

Discord 麻省理工学院 克劳丁

Github 与乌克兰站在一起

安装

Node.js…


观星📈

过去7天涨幅最大的股票🔗

  1. Tabby +1,686 颗星
  2. Pico +1,059 颗星
  3. 免费编程书籍+833 星
  4. 类型挑战+827 颗星
  5. 开发者路线图+1,229 星

过去 7 天增长最快的百分比🔗

  1. Pico +157%
  2. Qwik +28%
  3. 混音授权+22%
  4. 状态页面+20%
  5. React Cool Img +18%

过去30天涨幅最大的股票🔗

  1. 免费编程书籍+4,676 星
  2. 超赞+4,563 星
  3. Tabby +4,504 星
  4. 开发者路线图+4,363 星
  5. 编程面试大学+3,960 星

过去 30 天增长最快的百分比🔗

  1. 美杜莎+198%
  2. Pico +184%
  3. Nice Modal React +87%
  4. 阿格里帕+85%
  5. VSCode Front Matter +56%

想要查看最新排名,请访问Stargazing.dev


《热门项目》以每周新闻简报的形式发布,请在Stargazing.dev注册,以确保您不会错过任何一期。

如果你喜欢这篇文章,可以关注我的推特账号,我会定期发布关于HTML、CSS和JavaScript的内容。

文章来源:https://dev.to/iainfreestone/10-trending-projects-on-github-for-web-developers-17th-december-2021-2fmn