【问题标题】:Can i migrate my Node based project to Deno?我可以将基于 Node 的项目迁移到 Deno 吗?
【发布时间】:2020-09-06 05:58:06
【问题描述】:

您好,我是前端开发人员。

首先,我对运行时环境了解不多。
是否可以使用 Node 将我的项目转换为 Deno?

即使我更改了所有代码,
我不确定我收到的库是否可以在 Deno 环境中运行。
(太多的库......)(React,Apollo,很多很多)

而且由于当前的 webpack 设置非常复杂且难以理解,(而且我对构建系统了解甚少。)
我不确定这是否可以在 Deno 环境中工作。

在我看来,这似乎是不可能的,我只会在做新项目的时候使用 Deno,或者等待有人创建迁移指南。

您对此有何看法?

添加

显然,如果我使用的库没有在 Deno 存储库中注册,那将是不可能的。

其次,似乎存在节点兼容性问题。

现在我确定我无法将其转换为 deno。 谢谢

【问题讨论】:

  • 你的 Node.js 是 REST API 吗?或者出于某种原因,您使用它只是为了发布您的前端 React 应用程序的构建?
  • @Evandro Pomatti Just For 发布我的前端 React 应用程序的构建。 API server 与 client-app 完全分离
  • 我明白了!然后,您需要配置静态文件。使用 Deno 应该可以毫不费力地做到这一点。没有编译或转换,只有静态文件。您将使用它作为代理。老实说,切换到ngnix!如果您不需要动态内容,则不需要 Node.js 或 Deno。我现在想不出答案,但看看是否有帮助。
  • @Evandro Pomatti 这个问题不是问解决方案,而是应该考虑什么。您的评论绝对有帮助。
  • @Evandro Pomatti 如果没有 Node,是的,它可以工作,但是 npm 呢?我无法想象没有它的构建,我会再次考虑您的评论...我明白了,您的意思是,这是开发方法和构建方法的问题。不工作与否,因为它是静态的。是的,但我需要一种实际构建的方法

标签: javascript node.js webpack package.json deno


【解决方案1】:

Denoify
该工具将 TypeScript 代码库作为输入,该代码库旨在以节点和/或 Web 为目标,并输出已准备好部署为 Deno 模块的源文件的修改版本。
它还有助于在 NPM 和 deno.land/x 上进行部署

但是,它仍在积极开发中,并非所有节点内置都受支持,您可能需要在代码库中到处进行一些更改以符合 Denoify 集的要求。

另外,我是作者。

【讨论】:

    【解决方案2】:

    您使用纯 JavaScript 或 TypeScript 编写的任何代码都可以在 Node.js 和 Deno 中运行。

    但是,您很有可能在当前项目中使用了 Node.js 特有的功能。 requires、对原生 Node.js API 的调用(如 httputil 以及许多其他 API)在 Deno 运行时中不起作用。

    此外,大多数 Node.js 库都使用这类特定于 Node.js 的 API,因此您必须对 Deno 进行完全重写。

    【讨论】:

      【解决方案3】:

      您在 node 项目中使用了许多 npm 包。Deno 无法与它们一起使用。因此,您要么等待 deno 足够成熟,要么继续使用 node 构建您的项目,直到那个时候。所以我认为如果你想充分利用 deno,你应该等待 deno 成熟

      【讨论】:

        【解决方案4】:

        我不太确定,但是由于您有一个 Node.js 项目,因此您应该使用 npm 包,所以除非您使用的那些 npm 包有替代的 Deno 包,否则它是可能的,但如果没有,那么就像 @IsaToltar 所说的那样等待足够成熟了。

        但如果你能告诉我们你使用了哪些第三方 npm 包,那么我们或许可以找到替代的 Deno 包。

        希望对你有帮助。

        【讨论】:

        • 谢谢,我不想用一长串的清单打扰大家。 ? 这意味着如果有模块可以替代我的 npm 模块,理论上是可能的。但是等待是更好的选择,也许我需要重新配置 webpack 构建。
        • @KimMinJae 好吧,我想你必须这样做才能让我们帮助你,或者你可以在谷歌上搜索你的节点包的 Deno 替代品我相信你会找到一些东西。
        猜你喜欢
        • 2020-09-07
        • 2011-02-13
        • 1970-01-01
        • 1970-01-01
        • 2020-08-29
        • 1970-01-01
        • 2023-01-21
        • 2017-02-07
        • 1970-01-01
        相关资源
        最近更新 更多