我需要一些可通过脚本标签导入在浏览器中用作“直接依赖”的javascript代码,并且在笑话测试或更结构化的代码(例如VueJS Web应用程序)中具有相同的“可导入”代码。 / p>
原因是我有一个Web应用程序,其中包含许多页面,其中包含使用一些“通用”库(StringUtilities,RestUtilities等)的更简单的javascript:所有这些库均以Typescript作为模块编写,因此我可以使用所有它们直接使用,而无需任何模块加载程序系统或webpack或任何其他工具:仅需要tsc。 但是现在我正在使用VueJ和typescript和WebPack做一些很棒的事情,我想重用那些库(也已经通过qunit进行了很好的测试),但是当我尝试在Jest中进行一些测试时,我得到了一个错误,因为公用库不存在。
我的模块都是这样的:
module MyOrg {
export module Str {
export function IsNullOrEmpty(val: string | null | undefined): boolean {
return val === undefined || val === null || val === "";
}
}
}
在网页中,我可以像这样简单地导入它:
<script src="js/MyOrg.Str.js"></script>
最后像这样使用它:
if (MyOrg.Str.IsNullOrEmpty("")){
//..
}
与此同时,我想在VueJs应用程序中使用一种更现代的方法,例如:
export function IsNullOrEmpty(val: string | null | undefined): boolean {
return val === undefined || val === null || val === "";
}
...
import {IsNullOrEmpty} from "MyOrg.Str";
我在想,也许我可以将所有模块重写为导出函数列表,并通过构建系统使它们转换为模块中的功能,从而使这些代码可用于遗留代码:可以吗?以及如何?