【发布时间】:2021-06-29 01:41:10
【问题描述】:
我们有一个当前必须以 ES3 为目标的 JS 库,因为生产产品使用带有旧 JS 引擎的工具,这是不可协商的。但是我需要能够在 Deno 中使用这个库,而且我不能将它转换为 ES 模块。该库目前正在使用函数闭包模块,ala Crockford,其中每个源都是一个构造函数,如下所示:
function ModuleName() {
"use strict";
...
}
然后该模块与let mod=new ModuleName(); 一起使用。
有什么方法可以在 deno 中使用这些?我不在乎如何,确切地说——如果需要,我可以加载脚本和eval,但最好只使用某种形式的导入。
我已经尝试以各种形式加载脚本文件并使用eval 和Function,并且记录了import 的所有变体。我搜索了 Deno 文档并尝试了所有我能想到的搜索。一切都无济于事。
任何建议将不胜感激。
【问题讨论】:
-
"我无法将其转换为 ES 模块" - 你不能更改构建过程吗?使用现代语法,为生产环境生成 ES3 目标模块,为 Deno 生成 TypeScript 模块。
-
使用
Function构造函数(如Function(source + '\n return new moduleName;')())应该可以工作。你能告诉我们你究竟尝试了什么以及它是如何失败的吗?
标签: javascript module deno