使用typescript和webpack进行代码拆分

时间:2016-09-12 22:59:01

标签: javascript typescript webpack code-splitting ts-loader

我想使用webpack提供的代码拆分功能,以便创建我的应用程序的几个捆绑包,使用typescript开发,并按需加载它们。 我一直在寻找解决方案一段时间,我找到的最接近的答案就是这个: https://github.com/TypeStrong/ts-loader/blob/master/test/execution-tests/babel-codeSplitting/require.d.ts

此示例直接来自官方ts-loader文档,它显示了如何依赖require.ensure来创建分割点。

让我感到困惑的是,打字稿中没有一种直截了当的方式来做到这一点。必须在typescript中直接调用require.ensure函数。需要提供以下声明文件以允许typescript以静默方式消化该调用:

declare var require: {
    <T>(path: string): T;
    (paths: string[], callback: (...modules: any[]) => void): void;
    ensure: (paths: string[], callback: (require: <T>(path: string) =>   T) => void) => void;
};

是否有更优雅的方法可以达到相同的效果?

1 个答案:

答案 0 :(得分:0)

  

是否有更优雅的方式来实现相同的结果

没有。各种运行时具有不同的(不一致的)API,用于按需加载模块。所以TypeScript选择在这里是不可知的。

更多

关于延迟加载的一些注意事项及其在类型安全方面的工作原理:https://basarat.gitbooks.io/typescript/content/docs/project/external-modules.html