跳到主要内容
Deno 2.4 发布,带来 deno bundle、字节/文本导入、OTel 稳定版等新功能
了解更多
Run a Node project with Deno.

使用 Deno 运行 Node 项目,在 #NodeToDenoChallenge 中赢取奖品

2024年1月4日更新:挑战已结束!感谢所有参与者。在此处查看结果

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 发布到 Twitter*。我们将随机抽取10名参与者,以及在代码行数最多的 Node 项目上尝试运行 Deno 的个人,并奖励他们一张价值100美元的 Deno 周边商店礼品卡。

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

如何参与

是的,现在是假日季,大家都不想做任何事,所以我们将参与流程尽可能简化。

  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 issue。(如果您想参与“最大 Node 项目”类别评选,则必须附上 GitHub 链接,以便我们验证代码行数。)

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

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

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

奖品

1月4日,10名随机选取的参与者将赢得一张价值100美元的 Deno 周边商店礼品卡。多次提交不会增加被选中的机会。

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

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

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

结果

我们总共收到了47份提交,范围涵盖了从实用库(如 node-cbornode-gamedig)、脚手架和构建工具(如 create-react-appcreate-vite)、VSCode 扩展管理器、个人网站、应用程序和机器人等。

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

感谢所有参与者并帮助我们改进 Node 兼容性。如果您是10名随机选中的参与者之一,Deno 团队将通过 Twitter、Discord 或电子邮件联系您,提供奖品信息。

就是这样!

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