Deno 中对 CommonJS 模块的支持如何?

前言

Deno 是一款 JavaScript 和 TypeScript 运行时,其由 Node.js 的创始人 Ryan Dahl 开发,具有一些特殊的功能和安全特性。本文将介绍 Deno 中对 CommonJS 模块的支持以及如何使用它。

CommonJS 模块

CommonJS 是 Node.js 的模块化规范,该规范定制了一套模块加载机制和模块定义方式,其采用了 require() 和 module.exports 来完成模块化设计。在 Node.js 中,我们可以直接使用 CommonJS 模块进行开发。

但是,Deno 中是没有内置的 CommonJS 模块机制的。所以,在 Deno 中使用 CommonJS 模块需要我们手动实现。

在 Deno 中支持 CommonJS 模块

在 Deno 中,我们可以使用第三方模块库 Denoify 来实现对 CommonJS 模块的支持。

Denoify 可以把 CommonJS 模块转换成 ES 模块,以便让 Deno 能够加载它们。它可以动态地分析模块的依赖关系并转换对应的文件,使得 CommonJS 模块能够在 Deno 环境下正常运行。

安装 Denoify:

$ deno install --unstable --allow-read --allow-write --allow-net https://deno.land/x/denoify/mod.ts

使用 Denoify:

$ denoify your-script.js

使用 Denoify 还需要注意一些问题,具体详见其文档说明。

示例代码

下面是一个使用 Denoify 支持 CommonJS 模块的简单示例:

import { add } from './math.js';

console.log(add(1, 2));

math.js:

exports.add = (a, b) => {
  return a + b;
};

使用 Denoify 命令:

$ denoify main.js

执行结果:

$ deno run main.js
3

总结

Deno 虽然没有内置对 CommonJS 模块的支持,但是可以通过第三方模块库 Denoify 来实现对此的支持。通过本文的介绍,我们应该能够掌握如何在 Deno 中使用 CommonJS 模块了。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/659fbc61add4f0e0ff841117


纠错反馈