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

🚀2021年6月25日 GitHub 上十大热门 Web 开发者项目:TypeStat、包恐惧症、DenoDB 大小限制、react-headroom、React 面试问答、Intro.js、clipboard.js

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

类型状态

包裹恐惧症

DenoDB

尺寸限制火星人邪教

Holmes.js

react-headroom

React面试题及答案

Intro.js

剪贴板.js

《热门项目》以每周新闻简报的形式提供,请访问www.iainfreestone.com注册,以确保您不会错过任何一期。

1. 类型统计

将 JavaScript 转换为 TypeScript,并将 TypeScript 转换为更好的 TypeScript。

GitHub 标志 JoshuaKGoldberg / TypeStat

将 JavaScript 转换为 TypeScript,并将 TypeScript 转换为更好的 TypeScript。🧫

类型状态

将 JavaScript 转换为 TypeScript,并将 TypeScript 转换为更好的 TypeScript。🧫

👪 所有贡献者:12 🤝行为准则:遵守 🧪 覆盖范围 📝 许可证:MIT 📦 npm 版本 💪 TypeScript:严格模式

用法

TypeStat 是一个命令行实用程序,用于修改现有代码中的 TypeScript 类型。其内置的修改器只会添加或删除类型,绝不会改变运行时行为。TypeStat 可以:

  • ✨ 一步到位,轻松将 JavaScript 文件转换为 TypeScript!
  • ✨ 为刚刚从 JavaScript 转换为 TypeScript 的文件添加 TypeScript 类型!
  • ✨ 推断需要修复的类型--noImplicitAny--noImplicitThis违规行为!
  • ✨ 标注缺失的nulls 和undefineds,助你入门--strictNullChecks

⚡ 首先,该typestat命令将启动一个交互式指南,指导您设置配置文件。⚡

npx typestat
Enter fullscreen mode Exit fullscreen mode
👋 Welcome to TypeStat! 👋
This will create a new typestat.json for you.
...
Enter fullscreen mode Exit fullscreen mode

之后,用它typestat --config typestat.json来转换文件。

配置

要更深入地了解 TypeStat,请按顺序阅读以下文档页面:

  1. Usage.md用于…

2. 包裹恐惧症

查找向项目中添加新依赖项的成本。Package Phobia 会在您安装 npm 包之前报告其大小。

GitHub 标志 styfle /包裹恐惧症

⚖️ 计算向项目中添加新依赖项的成本

包裹恐惧症

测试 正常运行时间

  • ⚖️ 计算向项目中添加新依赖项的成本
  • 🕗 使用这款网页应用,节省您的时间和磁盘空间
  • 📈 使用图表检测 JavaScript 代码随时间推移的膨胀情况
  • 🛡️ 为你的 README 文件获取徽章/盾牌
  • 📡 从 JSON API 获取尺寸,以便集成到任何工具中

……正如在AWS Developer Tools Blognpm weeklyponyfoo weeklyhabrrwpodwolf reportchangelog以及 Twitter 上看到的那样。

目的是什么?

Package Phobia 会在您安装npm 包之前报告其大小。

这对于检查潜在问题非常有用dependencies,而且devDependencies不会占用宝贵的磁盘空间或等待数分钟npm install。谁有时间等那个啊。

结果会被保存,所以第一个人可能需要稍等片刻才能看到包裹大小,但其他人都能立即看到结果!

一个…


3. DenoDB

适用于 Deno 的 MySQL、SQLite、MariaDB、PostgreSQL 和 MongoDB ORM。简洁、类型化的 API

GitHub 标志 eveningkid / denodb

Deno 的 MySQL、SQLite、MariaDB、PostgreSQL 和 MongoDB ORM

DenoDB

⛔️ 本项目目前未进行积极维护:审核可能会出现问题和延迟。

  • 🗣 支持 PostgreSQL、MySQL、MariaDB、SQLite 和 MongoDB
  • 🔥 简单、类型化的 API
  • 🦕 Deno-ready
  • 请阅读文档
import { DataTypes, Database, Model, PostgresConnector } from 'https://deno.land/x/denodb/mod.ts';
const connection = new PostgresConnector({
  host: '...',
  username: 'user',
  password: 'password',
  database: 'airlines',
});

const db = new Database(connection);

class Flight extends Model {
  static table = 'flights';
  static timestamps = true;

  static fields = {
    id: { primaryKey: true, autoIncrement: true },
    departure: DataTypes.STRING,
    destination: DataTypes.STRING,
    flightDuration: DataTypes.FLOAT,
  };

  static defaults = {
    flightDuration: 2.5,
  };
}

db.link([Flight]);
Enter fullscreen mode Exit fullscreen mode

4. 尺寸限制

计算运行您的 JS 应用或库以保持良好性能的实际成本。如果成本超出限制,请在 pull request 中显示错误信息。

GitHub 标志 ai /大小限制

计算运行您的 JS 应用或库以保持良好性能的实际成本。如果成本超出限制,请在 pull request 中显示错误信息。

尺寸限制火星人邪教

安东·洛夫奇科夫 (Anton Lovchikov) 设计的尺寸限制标志

Size Limit 是一个 JavaScript 性能预算工具。它会检查 CI 上的每一次提交,计算最终用户执行 JavaScript 的实际成本,如果成本超过限制,则会抛出错误。

  • ES 模块tree shaking支持。
  • 在GitHub ActionsCircle CI或其他 CI 系统中添加大小限制,以便了解拉取请求是否添加了庞大的依赖项。
  • 模块化设计,可适应不同的使用场景:大型 JS 应用程序(使用自己的打包器)或包含大量文件的小型 npm 库。
  • 可以计算浏览器下载并执行你的JS文件所需的时间。与文件大小(以字节为单位)相比,时间是一个更准确、更容易理解的指标。
  • 计算包括JS 中使用的所有依赖项和 polyfill 。

大小限制 CLI

使用GitHub action Size Limit,可以将捆绑包大小的更改作为评论发布到 pull request 讨论中。

拉取请求中关于捆绑包大小更改的“大小限制”注释

有了--why“尺寸限制”功能,您可以了解……





5. 福尔摩斯

在页面内进行快速便捷的搜索。Holmes 仅需约 2KB 的空间,即可根据输入值筛选元素列表。

GitHub 标志 Haroenv / holmes

在页面内快速轻松地搜索。

Holmes.js

在页面内快速轻松地进行搜索。

构建状态 覆盖范围状态 npm 版本 鲍尔版本 CDNJS 版本 加入聊天:https://gitter.im/Haroenv/holmes 压缩后的大小

inputHolmes仅用约 2KB 的数据,就根据 a 的值过滤了一个元素列表。

安装

您可以使用 `--install`npm或 ` bower--install` 包名安装 Holmes holmes.js。例如npm,安装方式如下:

$ yarn add holmes.js # or via npm
Enter fullscreen mode Exit fullscreen mode

之后,您可以使用 webpack、rollup、browserify 等工具将其添加到您的页面中,或者在不同的脚本标签中加载该模块。

您必须确保css为该类设置一条规则.hidden,以便按您想要的方式隐藏元素。一种方法是这样做:

.hidden {
  display: none;
}
Enter fullscreen mode Exit fullscreen mode

但这可以是css你想要的任何一种。

用法

演示

我应该在什么情况下使用它?

你应该在以下情况下使用福尔摩斯:

  • 您的物品数量有限。
  • 你不需要容错机制
  • 你只想添加一个非常小的库

6. react-headroom

暂时隐藏页眉,需要时再显示。

GitHub 标志 KyleAMathews / react-headroom

暂时隐藏页眉,直到需要时再打开。

react-headroom

暂时隐藏页眉,需要时再显示。

演示

http://kyleamathews.github.io/react-headroom

安装

npm install react-headroom

用法

一个简单的例子,更多例子和文档请参见文档网站。

<Headroom>
  <h1>You can put anything you'd like inside the Headroom Component</h1>
</Headroom>
Enter fullscreen mode Exit fullscreen mode




7. React面试问答

ReactJS面试题及答案精选500道。

GitHub 标志 sudheerj / reactjs-interview-questions

ReactJS 面试题及答案精选 500 道……编程练习题即将推出!!

React面试题及答案

如果您喜欢这个项目,请点击⭐。非常欢迎您提交 Pull Request。请关注我的推特账号@SudheerJonna获取技术更新。


💡 用前面试官的问答题轻松搞定 React 面试!试试 GreatFrontEnd → 💡


🚀 用来自 FAANG+ 公司的解决方案轻松攻克 React 面试题!立即体验 FrontendLead → 🚀


ZTM 标志

  1. 如果你真心想学习 React,并且想深入学习基础知识,我推荐这门React 课程。
  2. 想在编程面试中脱颖而出,进入梦寐以求的公司吗?那就来参加这个编程面试训练营吧!

注意:本仓库专门针对 ReactJS。有关 JavaScript 核心问题,请查看JavaScript 面试题;有关数据结构与算法 (DSA) 相关问题,请查看数据结构与算法。

目录

隐藏/显示目录






8. Intro.js

轻量级、用户友好的新手引导教程库

GitHub 标志 usablica / intro.js

轻量级、用户友好的新手引导教程库

Intro.js

构建状态 npm

用户引导和产品演示库

哪里可以买到

您可以从以下位置获取 Intro.js 的本地副本:

1)这个 GitHub 仓库,使用git clone https://github.com/usablica/intro.js.git

2)使用纱线yarn add intro.js

3)使用 npmnpm install intro.js --save

4)从 CDN 下载 ( 1 , 2 )

如何使用

只需三个简单步骤即可将 Intro.js 添加到您的网站:

1)在您的页面中包含intro.jsintrojs.css或用于生产环境的压缩版本)。用于introjs-rtl.min.css支持从右到左的语言。

CDN托管文件可在jsDelivr(点击“显示更多”)和cdnjs上获取。

2)将 `<p> data-intro` 和`<p>` 添加data-step到您的 HTML 元素中。要添加提示,您应该使用data-hint`<p>` 属性。

例如:

<a href='http://google.com/' data-intro='Hello step one!'></a>
Enter fullscreen mode Exit fullscreen mode

点击此处查看所有属性

3)调用以下 JavaScript 函数:

introJs().start();
Enter fullscreen mode Exit fullscreen mode





9. clipboard.js

现代复制到剪贴板格式。无需 Flash。压缩后仅 3kb。

GitHub 标志 zenorocha / clipboard.js

✂️ 现代复制到剪贴板功能。无需 Flash。压缩后仅 3kb 📋

剪贴板.js

构建状态 杀手闪电

现代复制到剪贴板格式。无需 Flash。压缩后仅 3kb。

演示

为什么

将文本复制到剪贴板不应该很困难。它不应该需要几十个步骤来配置,也不应该加载数百KB的数据。但最重要的是,它不应该依赖Flash或任何臃肿的框架。

这就是 clipboard.js 存在的意义。

安装

你可以在 npm 上找到它。

npm install clipboard --save

或者,如果您不喜欢软件包管理,可以直接下载 ZIP文件。

设置

首先,包含位于文件夹中的脚本,或者从第三方 CDN 提供商dist加载它

<script src="dist/clipboard.min.js"></script>
Enter fullscreen mode Exit fullscreen mode

现在,你需要通过传递 DOM 选择器HTML 元素HTML 元素列表来实例化它。

new ClipboardJS('.btn');
Enter fullscreen mode Exit fullscreen mode

内部我们需要获取所有与你的选择器匹配的元素,并为每个元素添加事件监听器。但是你猜怎么着……


10. 下一个站点地图

Next.js 网站地图生成器。为所有静态/预渲染/动态/服务器端页面生成网站地图和 robots.txt 文件。

GitHub 标志 iamvishnusankar /下一个站点地图

Next.js 网站地图生成器。为所有静态/预渲染/动态/服务器端页面生成网站地图和 robots.txt 文件。

横幅

目录

入门

安装

yarn add next-sitemap
Enter fullscreen mode Exit fullscreen mode

创建配置文件

next-sitemapnext-sitemap.config.js需要在项目根目录下放置一个基本配置文件( )。

✅默认情况下next-sitemap会从文件中加载环境变量.env

/** @type {import('next-sitemap').IConfig} */
module.exports = {
  siteUrl: process.env.SITE_URL || 'https://example.com',
  generateRobotsTxt: true, // (optional)
  // ...other options
}
Enter fullscreen mode Exit fullscreen mode

构建站点地图

添加 next-sitemap 作为您的 postbuild 脚本

{
  "build": "next build",
  "postbuild": "next-sitemap"
}
Enter fullscreen mode Exit fullscreen mode

自定义配置文件

您也可以使用自定义配置文件代替默认配置文件next-sitemap.config.js。只需将其传递--config <your-config-file>.js给构建命令即可(例如:custom-config-file)。

{
  "build"
Enter fullscreen mode Exit fullscreen mode

观星📈

过去7天涨幅最大的股票

  1. 幻灯片+1,056 颗星
  2. JavaScript 算法+908 星
  3. 算法可视化工具+884 星
  4. 编程面试大学+864 星
  5. Tailwindcss +791 星

过去 7 天增长幅度最大(%)

  1. 幻灯片+41%
  2. Nano Stores +34%
  3. React Virtual Cool +27%
  4. 百万+17%
  5. 轻弹+17%

过去 30 天涨幅最大的股票

  1. 编程面试大学+11,825 星
  2. 公共 API +7,051 星
  3. 免费编程书籍+5,253 星
  4. Slidev +4,050 颗星
  5. JavaScript 算法+3,029 星

过去 30 天增长幅度最大(%)

  1. +74%
  2. Vuestic UI +59%
  3. 持牌人+50%
  4. 轻弹+41%
  5. Slidev +39%

《热门项目》以每周新闻简报的形式提供,请访问www.iainfreestone.com注册,以确保您不会错过任何一期。

如果你喜欢这篇文章,可以关注我的推特账号,我会定期发布与HTML、CSS和JavaScript相关的实用技巧。

文章来源:https://dev.to/iainfreestone/10-trending-projects-on-github-for-web-developers-25th-june-2021-4lfk