Javascript 在使用Typescript编译网页包期间动态导入模块
我正试图为我的爱好项目创建一个框架,在这个框架中,我在自己的Typescript文件中有任意数量的对象定义。然后我有一个工厂,它在被请求时根据这些定义创建实体 例如,通过调用Javascript 在使用Typescript编译网页包期间动态导入模块,javascript,typescript,webpack,Javascript,Typescript,Webpack,我正试图为我的爱好项目创建一个框架,在这个框架中,我在自己的Typescript文件中有任意数量的对象定义。然后我有一个工厂,它在被请求时根据这些定义创建实体 例如,通过调用createEntity('Player')工厂将使用名为Player的定义来创建新实体 由于项目中可能有大量这些定义文件,我不想手动将它们全部导入factory模块。由于我使用的是Webpack,我认为应该可以找到所有与glob匹配的文件,如.entity.ts,并在编译过程中将它们导入工厂模块。然而,我真的不知道如何做到
createEntity('Player')
工厂将使用名为Player
的定义来创建新实体
由于项目中可能有大量这些定义文件,我不想手动将它们全部导入factory模块。由于我使用的是Webpack,我认为应该可以找到所有与glob匹配的文件,如.entity.ts
,并在编译过程中将它们导入工厂模块。然而,我真的不知道如何做到这一点
我发现有几处提到它似乎可以满足我的需要,但从我看到的示例中,我无法理解如何在我的factory模块中实际使用它。TSC还抱怨,当我在模块中放入以下行时,它找不到名称require
:
function importAll(r) {
r.keys().forEach(r);
}
importAll(require.context('.', true, /\.entity\.ts/));
那么,我如何将所有定义文件包含到Webpack捆绑包中,并将它们导入到我的factory模块,而无需手动写入导入?找到了一个解决方案。首先,我必须将包
@types/webpack env
和@types/node
安装为开发依赖项
然后,“我的工厂”模块中的以下代码选择并导入我的定义:
函数导入高度(r){
返回r.keys().map(r);
}
const knownanties=importAll(require.context('....',true,/\.entity\.ts$/);
找到了解决方案。首先,我必须将包@types/webpack env
和@types/node
安装为开发依赖项
然后,“我的工厂”模块中的以下代码选择并导入我的定义:
函数导入高度(r){
返回r.keys().map(r);
}
const knownanties=importAll(require.context('....',true,/\.entity\.ts$/);