【发布时间】:2019-08-06 07:34:55
【问题描述】:
我真的很难找到任何打字稿和代码拆分的好例子。
有一些 babel 插件涵盖了这一点,但对于 typescript 示例来说非常薄弱。
我正在使用 react,所以我想使用 React.Lazy,但我找不到任何涵盖 webpack 代码拆分方面的东西
我确实找到了这个old example,但它使用了现在已故的 CommonsChunkPlugin:
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: "vendor",
minChunks: function (module) {
// this assumes your vendor imports exist in the node_modules directory
return module.context && module.context.includes("node_modules");
}
})
],
它使用react-loadable但显然不能使用babel插件所以示例是手动添加魔术webpack cmets:
export const LoadableHello = Loadable({
loader: () => import(/* webpackChunkName: "hello" */ "./Hello"),
loading: () => <div>loading ...</div>
});
谁能帮我理解:
- 如何在 webpack 方面为动态导入设置代码分割:
- 我可以将 React.Lazy 与 typescript 一起使用吗?
我想我需要确保 ts 没有删除 cmets。
【问题讨论】:
-
我在 Typescript 项目中使用了
React.lazy。效果很好! -
你能给我举一个如何设置 webpack 的例子吗?知道你能做到只会让我更加嫉妒:)
-
我并不完全熟悉配置 webpack 以进行动态导入 - 我认为这是开箱即用的支持。快速浏览他们的文档似乎可以证实这一点:webpack.js.org/guides/code-splitting/#dynamic-imports 你是否尝试过仅使用
React.lazy和动态导入,例如:const Component = React.lazy(() => import('./Component'));假设你的 React 版本是 16.6 +
标签: reactjs typescript webpack code-splitting