解决 Deno 引入本地模块时无法找到错误的方法

引言

Deno 是一个基于 V8 引擎的安全 TypeScript 运行时,它可以让开发者在浏览器之外运行 JavaScript 和 TypeScript 代码。Deno 的模块系统与 Node.js 不同,它使用 URL 来导入模块,可以从任何地方导入模块,包括本地的文件系统。

然而,有时候在 Deno 中引入本地模块时会遇到无法找到模块的问题,这可能会让人感到迷惑和困惑。本文将介绍解决这个问题的方法。

问题分析

在 Deno 中引入本地模块时,我们可以使用相对路径来引用模块,例如:

------ - --- - ---- -----------

这种方式可以正常工作,但是如果在一个嵌套的文件夹中引用模块时,就会出现找不到模块的错误,例如:

-
--- ---
-   --- ------
-   --- ---
-       --- ------
--- ------

bar.ts 文件中引用 foo.ts 文件时:

------ - --- - ---- ------------

这时候运行 deno run app.ts 命令时会出现以下错误:

------ -------- --------- ------ ------- ------ ----------- ---- ---------------------------------
    -- -------------- -----------------------------------
    -- ---------------- -----------------------------------
    -- -------------- --------------------------------
    -- -------------------- --------------------------
    -- ----- ------------------------------------------

这个错误信息告诉我们,Deno 在解析模块路径时无法找到 ../foo.ts 文件。

解决方法

为了解决这个问题,我们可以使用 --allow-read 标志来允许 Deno 访问本地文件系统:

---- --- ------------ ------

这个标志告诉 Deno 允许读取文件系统,这样就可以找到模块了。

另外,我们还可以使用 URL 来引用本地模块,例如:

------ - --- - ---- -------------------------------------

这种方式可以避免路径问题,但是需要注意的是,使用 URL 引用本地模块时,需要使用 --allow-net 标志来允许 Deno 访问网络:

---- --- ----------- ------

示例代码

下面是一个示例代码,演示如何在 Deno 中引用本地模块:

-- ----------
------ ----- --- - ------- --------

-- --------------
------ - --- - ---- ------------

-----------------

-- ------
------ - --- - ---- -------------------

运行 deno run --allow-read app.ts 命令,输出:

------ ------

总结

在 Deno 中引用本地模块时,有时候会遇到找不到模块的错误。我们可以使用 --allow-read 标志来允许 Deno 访问本地文件系统,或者使用 URL 来引用本地模块。这些方法可以帮助我们解决这个问题。

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