跳至主要内容
Deno 2 终于来了 🎉️
了解更多
Run a Node project with Deno.

使用 Deno 运行 Node 项目并赢得 #NodeToDenoChallenge 的奖品

更新 2024/01/04:挑战已结束!感谢所有参与者。请在此处查看结果.

在 Deno 领域,这一年非常忙碌。我们推出了 Deno KVDeno QueuesDeno CronDeno SubhostingSaaSKit,发布了六个 Fresh 的次要更新,十个 Deno CLI 的次要更新…… 等等。

今年我们最大的举措之一是改善 Node 和 npm 的兼容性。npm 注册表是全球最大的开源注册表,其中包含许多有用的模块,我们希望您在 Deno 中使用它们。自从在 Deno 1.28 中引入 npm: 指定符以来,我们添加了 通过 node: 指定符对 Node 模块的内置支持,能够 自备 node 模块,更不用说正在进行的 polyfill 和改进。

为了鼓励大家在他们的 Node 项目中尝试 Deno,我们启动了 #NodeToDenoChallenge

从今天开始到 1 月 4 日,在您的任何 Node 项目中运行 Deno,截取输出截图(成功或失败),并在推特上用标签 #NodeToDenoChallenge 发布。我们将随机抽取 10 位参与者,以及尝试在代码行数最多的 Node 项目中运行 Deno 的个人,并奖励他们 100 美元的礼品卡,可用于 Deno 商品店

*如果您没有使用 Twitter,您仍然可以参与!只需将您的成功或错误输出粘贴到 GitHub 问题Mastodon 上。只要我们能找到它。

如何参与

是的,现在是假日季节,没有人愿意做任何事情,所以我们尽可能地简化了参与流程

  1. 选择任何 Node 项目。不需要是应用程序或服务器。甚至可以是一个脚本。
  2. 如有必要,将导入语句更新为 ESM。这意味着要替换
const module = require("module");

import module from "module";
  1. 将以下 deno.json 文件添加到项目的根目录,该文件启用了 各种不稳定的 Node/npm 兼容性设置
{
  "unstable": [
    "bare-node-builtins",
    "byonm",
    "sloppy-imports",
    "unsafe-proto"
  ]
}
  1. 运行以下命令
deno run -A $FILE
$FILE 是您在命令 node $FILE 中使用的任何文件。
  1. 截取输出截图,无论成功还是失败。
  2. Twitter 上分享或 创建 GitHub 问题。(如果您想获得“最大 Node 项目”类别资格,那么您还必须提供指向 GitHub 项目的链接,以便我们验证代码行数。)

就这样!喝一杯热可可,在炉火旁放松一下。

这些不稳定的 Node 兼容性设置是什么?

有关 Deno 与 Node/npm 的互操作性的更多信息,请查看以下资源

奖品

1 月 4 日,将随机抽取 10 位参与者,每人将获得一张价值 100 美元的礼品卡,可用于 Deno 商品店。多次提交不会增加被选中的机会。

此外,在代码行数最多的 Node 项目上尝试运行 Deno 的提交将有资格获得一张价值 100 美元的礼品卡。(请注意,为了获得此奖品资格,您必须分享指向 GitHub 项目的链接,以便我们验证代码行数。)

最后,为了鼓励大家宣传并与您的圈子分享,如果我们收到超过 100 个独特的提交,我们将把礼品卡的奖金从 100 美元提高到 200 美元

我们将在 Discord 上跟踪提交总数。

结果

我们共收到47 个提交,包括实用库,例如 node-cbornode-gamedig,脚手架和构建工具,例如 create-react-appcreate-viteVSCode 扩展管理器,个人网站、应用程序和机器人等等。

最大 Node 项目(按 JavaScript/TypeScript 代码行数计算)是 kibana包含 3,212,395 行代码。该提交还 包含其尝试的逐步演练,例如修改 require 语句、启用的 Deno 标志集以及删除一些 Node 版本验证。恭喜 hverlin 赢得最大 Node 项目奖。

感谢大家参与并帮助我们改进 Node 兼容性。如果您是 10 位随机抽取的参与者之一,Deno 团队将在 Twitter、Discord 或电子邮件上与您联系,告知奖品信息。

就是这样!

如果您有任何问题,请在 TwitterDiscord 上告知我们。