我正在webpack
用来dynamic import
在子目录中加载文件:
const requireApplicationRoutes = require.context('./', true, /routes.js$/);
let routes: any = [];
requireApplicationRoutes.keys().forEach((fileName) => {
routes = routes.concat(requireApplicationRoutes(fileName).default);
});
如何在模块中执行(import
)?(此代码在打字稿文件中)像?typescript
esnext
import('./**/*.ts')
在webpack
,typescript
而且esnext
,你可以在子目录加载文件使用require.context
,只是用来自的WebPack懒选项。
您的typescript
代码应如下所示:
const requireApplicationRoutes = (require.context as any)('./', true, /routes.ts$/, 'lazy');
requireApplicationRoutes.keys().forEach((fileName: any) => {
routes = routes.concat(requireApplicationRoutes(fileName).default);
});
但是,require.context
返回Promise
的webpack
版本,所以你的代码应该是:
const routes = Promise.all(
requireApplicationRoutes.keys().map((fileName: string) => requireApplicationRoutes(fileName).then((route: any) => route.default)),
).then(([ modules ]) => modules);
而且您应该在文件中包含所有惰性捆绑包,并且路由是路由的数组。:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句