Javascript 有没有办法将节点项目转换为Deno?

Javascript 有没有办法将节点项目转换为Deno?,javascript,node.js,typescript,converters,deno,Javascript,Node.js,Typescript,Converters,Deno,我想将Node.js项目转换为Deno。有导游吗 我当前的项目有很多NPM文件,它已经在TypeScript中了 任何提示?Deno和Node.js API不兼容,当然您可以重用所有javascript/typescript代码,但您需要重构或添加polyfills 为了简化迁移,Deno提供了一个,std/node,这仍然需要大量的工作 幸运的是,require是已经支持的polyfill之一 import { createRequire } from "https://deno.land/s

我想将Node.js项目转换为Deno。有导游吗

我当前的项目有很多NPM文件,它已经在TypeScript中了


任何提示?

Deno和Node.js API不兼容,当然您可以重用所有javascript/typescript代码,但您需要重构或添加polyfills

为了简化迁移,Deno提供了一个,
std/node
,这仍然需要大量的工作

幸运的是,
require
是已经支持的polyfill之一

import { createRequire } from "https://deno.land/std/node/module.ts";

const require = createRequire(import.meta.url);
// Loads native module polyfill.
const path = require("path");
// Visits node_modules.
const leftPad = require("left-pad");

console.log(leftPad('5', 5, '0'))
如果运行该示例:

npm i left-pad
deno run --allow-read node.js
// 00005
如您所见,已从
节点\u模块/
正确加载。因此,对于不依赖Node.js API的NPM包,您可以使用
std/Node
轻松地要求它们

这里有一个


现在,对于严重依赖Node.js API的包,您可以做的最好的事情是使用Deno API重写它们

随着项目的成熟,将有更简单的方法将Node.js项目转换为Deno

对于在Node.js上完美运行的大型项目,IMO认为迁移它们是不值得的。Deno&Node.js可以生活在一起,而不是一个或另一个。如果您愿意,可以在Deno上构建新项目,而不是迁移旧项目。

请查看,这是一个可以满足您需求的构建工具。您不必编写端口,也不必使用工具为您编写端口,文档中已详细说明了这一点

披露:我是作者