Deno 如何加载本地模块

Deno 是一个由 Ryan Dahl 创建的 JavaScript/TypeScript 运行时。它与 Node.js 不同,不需要使用 npm 打包和加载模块,而是直接使用 HTTP 导入模块。在 Deno 中,你可以使用绝对和相对路径导入本地模块。本篇文章将会介绍如何加载本地模块,并提供示例代码。

相对路径

使用相对路径导入一个本地模块的方式是相对于执行命令的当前工作目录。例如,如果我们有一个名为 "foo" 的模块,那么在该模块所在的目录中创建一个名为 "main.ts" 的文件,并将其作为入口文件。在 "main.ts" 文件中,我们可以使用相对路径导入 "foo" 模块:

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

这里,"./foo.ts" 表示 "foo.ts" 在当前目录中的相对路径。

如果有另一个名为 "baz" 的模块位于 "foo" 模块的目录中,我们可以使用相对路径导入 "baz" 模块:

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

这里,"./baz.ts" 表示 "baz.ts" 在 "foo.ts" 所在目录的相对路径。

绝对路径

使用绝对路径导入本地模块的方式是使用文件系统路径导入模块。在 Deno 中,绝对路径必须以 "file://" 开头。例如,如果有一个名为 "bar" 的模块,其绝对路径为 "/path/to/bar.ts",我们可以在 "main.ts" 中使用以下代码导入 "bar" 模块:

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

这里,"file:///path/to/bar.ts" 表示 "bar.ts" 的绝对路径。

钩子 (Hook)

Deno 提供了一种称为 "钩子" 的机制,可以在模块被导入之前修改其路径。这在将模块链接到不同的位置时非常有用。例如,如果我们有一个名为 "baz" 的模块,其绝对路径为 "/path/to/baz.ts",我们可以在其被导入之前用钩子将其路径加上一个前缀:

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

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

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

这里,我们使用 snowpack 模块的 setResolver() 方法设置了一个钩子,它会将以 "local://" 开头的模块路径映射到我们指定的路径。然后,在导入此模块时,我们可以使用 "local:///path/to/baz.ts" 的路径。

总结

Deno 带有直接导入模块的方式,使用相对或者绝对路径。钩子机制可以帮助开发者在导入模块时做出路径修改。这些方式都提供了一种灵活的方式来导入本地模块,无需使用 npm 或其他包管理器。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6543930d7d4982a6ebd5e193


猜你喜欢

  • Koa2 项目中如何实现分页功能

    在网站应用开发中,分页是一个常见的功能,它允许用户浏览大量数据时只显示部分内容。在 Koa2 项目中,我们可以使用一些库或自己编写代码来实现分页功能。这篇文章将介绍在 Koa2 项目中如何实现分页功能...

    1 年前
  • Mocha 测试框架中异步超时出现的问题怎么解决?

    Mocha 是一款前端测试框架,它在自动化测试、测试管理等方面广受欢迎。但是,在使用 Mocha 进行异步测试时,我们往往会遇到一些异步超时的问题。这篇文章将介绍异步超时问题的原因、解决方法和注意事项...

    1 年前
  • 如何使用 Redis 实现分布式锁

    如何使用 Redis 实现分布式锁 在分布式系统中,由于多个服务同时进行业务处理,可能会出现数据并发修改的情况,这时候我们需要使用分布式锁来解决这个问题。Redis 是一个高性能的 key-value...

    1 年前
  • 如何在 Vue.js 中使用 echarts 图表库

    在前端开发中,数据可视化是一个十分重要的环节。而 echarts 是一个非常优秀的 JavaScript 图表库,提供了丰富的图表类型,易于使用并且高度可配置,可以满足大部分数据可视化需求。

    1 年前
  • AngularJS 2.0:AngularJS 2.0 与 React 的比较,哪个更适合你的项目?

    前端开发中,AngularJS 和 React 是两个很流行的框架。AngularJS 是一个完整的 MVC 框架,而 React 是一个专注于视图层的库。在本篇文章中,我们将比较这两个框架,并探讨哪...

    1 年前
  • 如何诊断 JavaScript 性能问题

    JavaScript 是 Web 前端开发中必不可少的一种语言,但是随着页面交互和业务逻辑的复杂度逐渐增加,JavaScript 性能问题逐渐暴露出来。本文将介绍如何诊断 JavaScript 性能问...

    1 年前
  • 利用 Headless CMS 进行静态网站生成

    随着需求的不断改变和互联网的快速发展,越来越多的网站开始向静态化转变。静态网站生成是将服务器端动态生成的网页内容提前生成成静态文件,用户在访问时直接获取静态文件,从而提高网页的访问速度和安全性。

    1 年前
  • Babel 7 在 React Native 中的使用技巧

    React Native 作为一种跨平台的移动设备应用开发框架,已经被广泛应用于 iOS 和 Android 平台上。同时,开发人员也在不断地探索一些新的技术和工具,以更好的提升开发效率和代码质量。

    1 年前
  • 如何使用 CSS3 实现响应式阴影效果

    如何使用 CSS3 实现响应式阴影效果 介绍 在现代 Web 设计中,响应式阴影效果已成为一个重要的设计元素。在过去,我们可能会使用图像或 JavaScript 来实现此类效果,但现在,借助 CSS3...

    1 年前
  • MongoDB MapReduce 处理海量数据的技巧和经验

    随着数据量的不断增加,海量数据的处理成为了前端开发者必须要面对的问题之一。MongoDB 作为一种 NoSQL 数据库,经常被用于处理海量数据。而 MapReduce 作为 MongoDB 的一种高级...

    1 年前
  • 如何在 Atom 中配置 ESLint

    前言 在前端开发中,代码风格的一致性和规范性对于代码的可维护性和团队协作非常重要。而 ESLint 就是一款用于检查 JavaScript 代码中潜在问题和代码风格是否合规的工具,可以帮助我们更好的编...

    1 年前
  • Fastify 与 Egg.js 的快速集成指南

    前言 在进行 web 开发时,我们经常需要使用到前端框架和后端框架。前端框架可以提供丰富的组件和 UI 界面,后端框架则可以提供稳定的架构和数据存储。Fastify 和 Egg.js 都是非常优秀的 ...

    1 年前
  • WebSocket 和 Socket.IO 对比

    简介 WebSocket 是 HTML5 标准中的一种新协议,它支持双方建立一个持久的连接,双方可以通过这个连接并发地发送和接收数据,并且可以随时关闭连接。 Socket.IO 是一个基于 WebSo...

    1 年前
  • Material Design 设计中的边距与间距

    Material Design 是一种 Google 推出的设计语言,它试图在各种设备和平台上提供一致的用户体验。在 Material Design 中,边距和间距是非常重要的元素,它们可以帮助我们达...

    1 年前
  • Mongoose 中文文档虚拟属性详解

    在 MongoDB 的 Node.js 驱动 Mongoose 中,虚拟属性是一种模式属性,在对文档进行查询或者保存时会自动进行计算或者转换,但它不会在 MongoDB 中存储。

    1 年前
  • 如何使用 Next.js 和 GitHub API 创建个人展示页

    Next.js 是一款流行的 React 服务端渲染框架,而 GitHub API 则提供了一种方便的方式来获取 GitHub 用户的信息。在本文中,我们将介绍如何使用 Next.js 和 GitHu...

    1 年前
  • Node.js 服务器程序如何更好地处理跨域资源共享问题

    Node.js 服务器程序如何更好地处理跨域资源共享问题 跨域资源共享(CORS)是一个很有用的功能,它能够帮助前端开发者处理 Web 应用程序的跨域访问问题。CORS 允许浏览器从其他域名或端口请求...

    1 年前
  • 使用 Chai 和 Selenium 实现端到端的自动化测试的技巧

    使用 Chai 和 Selenium 实现端到端的自动化测试的技巧 在前端开发中,自动化测试是一个不可或缺的环节,它能够大大提高代码的质量和稳定性,节约开发者的时间和精力。

    1 年前
  • PWA 技术实现异步上传图片

    前言 PWA (Progressive Web App) 技术是一种可以让 Web 应用具备类似原生应用的用户体验的技术,同时也可以实现离线缓存和推送通知等功能。在 PWA 应用中,上传图片是一个常见...

    1 年前
  • 解决 Cypress 多浏览器兼容性问题

    前言 Cypress 是一个用于前端 UI 自动化测试的工具,广泛应用于 Web 应用程序的开发和测试之中。Cypress 自带断言库、强大的定位器以及可视化测试结果,易于上手且非常流畅。

    1 年前

相关推荐

    暂无文章