Deno:你能拦截模块加载/导入吗?

Posted

技术标签:

【中文标题】Deno:你能拦截模块加载/导入吗?【英文标题】:Deno: Can you Intercept Module Loading/Importing? 【发布时间】:2020-11-01 10:18:53 【问题描述】:

deno 是否有任何功能可以让您拦截通过import 包含的模块的加载?

也就是说——在 Node.js 中,程序员可以redefine the require 来拦截 CommonJS 模块的加载。 Node.js 还具有experimental loaders 功能,可让您拦截 ES6 模块加载。

deno 的库存模块加载器(即 import )是否有类似的东西?如果没有,在 deno 中是否有类似的计划,或者该项目的理念是否反对这种事情?

【问题讨论】:

【参考方案1】:

默认情况下,CommonJS 模块系统在 DENO 中不可用。但是,如果要拦截加载 Node.js 方式的模块,则必须在 DENO 中使用使用 createRequire 的 npm 模块。更多详情Check this answer for如何在DENO中使用npm模块?

【讨论】:

感谢您的回复。恐怕我的问题不清楚,虽然您的答案包含有用的信息 (+1),但这不是我要查找的信息。我想要一种通过import 语句拦截/监听在 deno 中加载的模块的方法。我提到的问题只需要解释我如何在 Node.js 中实现类似的东西。我为我的问题添加了一些额外的上下文以使其更清楚。

以上是关于Deno:你能拦截模块加载/导入吗?的主要内容,如果未能解决你的问题,请参考以下文章

延迟加载功能模块中未知的 Angular http 客户端拦截器

为啥在后端使用模块加载?

可加载内核模块编程和系统调用拦截

ES6的模块加载器也能加载资产吗(html/css/...)

角度 5 延迟加载与动态加载

为啥“导入模块”然后“从包导入模块”再次加载模块?