如何解决来自两个独立 Javascript 库的类型名称冲突?

首先让我说,我主要是一名 C# 程序员,很少涉足 JavaScript。

我可以自己编写一些 JS 代码,只要它大部分是普通的。我可以处理 jQuery 和奇怪的自给自足的第 3 方库,但是当 React、Angular、Bootstrap 和其他人出现时,我无法从湿纸袋中编写代码。我也不习惯使用 npm 或任何其他类似的包管理器。

这从来都不是我的工作或兴趣,所以我从未去过那里。每当我编写一些 JS 代码时,我都会在我的<script>标签中引用所需的 JS 文件,然后尽可能直接使用它们。

我目前正在创建一个非常简单的概念验证 Web 应用程序,它的客户端部分迟早会由有能力的人重建。但与此同时,我必须提供最基本的功能,这些功能将作为下一个团队接管的粗略指南,无论何时。

我选择了两个库,当单独使用时,每个库看起来都易于使用并且可以完成工作。但是当我尝试在同一页面上一起使用它们时,我遇到了一个问题:它们都使用相同的名称作为它们的主要类型,而且我似乎无法在它们之间消除歧义。

这些是图书馆:

它们都声明了一个名为 的类型JSONEditor,只要我不同时引用这两个库,我就可以使用它。

到目前为止,我已经尝试通过使用模块和import使用不同名称的类型来解决这个问题,但它没有用......我在控制台中收到了一堆关于“找不到导入”和“e 不是”的错误定义”,这让我觉得我在处理这个错误。

如果可能的话,我将如何使用纯 JS 解决这个问题?


回首忆惘然
浏览 67回答 1
1回答

眼眸繁星

代码编辑器(JSON 编辑器,而不是 JSON Schema Form Builder)的维护者在过去已经解决并关闭了一个关于这个问题的问题:https ://github.com/josdejong/jsoneditor/issues/270他推荐的解决方案如下所示:<script src="assets/jsoneditor/dist/jsoneditor.min.js"></script><script>&nbsp; var JSONEditorA = JSONEditor;</script><script src="assets/json-editor/dist/jsoneditor.min.js"></script><script>&nbsp; var JSONEditorB = JSONEditor;</script>如果您必须使用脚本标签,这可能是可行的方法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript