Deno 中报错 uncaught ReferenceError: require is not defined,该怎么解决?

阅读时长 3 分钟读完

什么是 Deno?

Deno 是一个基于 V8 引擎和 Rust 编写的 JavaScript 和 TypeScript 运行时环境,由 Node.js 的创始人 Ryan Dahl 开发。它的目标是提供更加安全、现代化和高效的 JavaScript 运行环境,并且没有 Node.js 中的一些历史遗留问题。

什么是 require?

在 Node.js 中,我们可以使用 require 函数来引入一个模块。例如:

这段代码会将 Node.js 自带的 fs 模块引入到当前文件中,并将其赋值给变量 fs。然后我们可以使用 fs 中提供的方法来操作文件系统。

为什么在 Deno 中会报错?

在 Deno 中,由于其设计理念的不同,不允许使用 require 函数来引入模块。如果你在 Deno 中使用了 require,就会得到以下报错信息:

这是因为 require 不是 JavaScript 标准语言的一部分,而是 Node.js 提供的一个特殊函数。而 Deno 为了更加符合标准,不允许使用非标准的函数和语法。

如何在 Deno 中引入模块?

在 Deno 中,我们可以使用 ES 模块的语法来引入模块。例如:

这段代码会将 Node.js 自带的 fs 模块中的 readFileSync 方法引入到当前文件中,并将其赋值给变量 readFileSync。然后我们就可以使用 readFileSync 方法来读取文件了。

需要注意的是,Deno 中的模块路径必须是一个 URL,而不是一个相对路径或绝对路径。例如:

这段代码会将 Deno 官方提供的 path 模块中的 join 方法引入到当前文件中,并将其赋值给变量 join。需要注意的是,这里的路径是一个 URL,而不是一个相对路径或绝对路径。

总结

在 Deno 中,不允许使用 require 函数来引入模块,而应该使用 ES 模块的语法来引入模块。需要注意的是,Deno 中的模块路径必须是一个 URL,而不是一个相对路径或绝对路径。

如果你在 Deno 中使用了 require 函数,就会得到 Uncaught ReferenceError: require is not defined 的报错信息。这时你应该检查代码中是否使用了 Node.js 中的非标准语法,并使用 ES 模块的语法来替换它们。

示例代码:

这段代码会读取当前目录下的 example.txt 文件,并将其内容输出到控制台。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65d4075cadd4f0e0ffc0ba38

纠错
反馈