使用类模块时,使用Typescript进行Webpack代码分割

时间:2018-01-20 04:37:26

标签: typescript webpack code-splitting code-splitting-async

我做了一些搜索,也许我的Google-fu失败了,但我似乎无法找到以下答案:

我们使用带有TypeScript类的模块,一切正常,直到我尝试在webpack中实现代码分割。

如果我有这个:

import { MyClass } from "./myClass"
let thing = new MyClass()
thing.init()

我想对它进行代码拆分,所以我试试这个:

import { MyClass } from "./myClass"

async function load() {
  const x = await import("./myClass")

  let thing:MyClass = new x.MyClass()

  thing.init()
}

load()

webpack收拾得很好,但我没有得到代码拆分。

然后我尝试

//import { MyClass } from "./myClass"
async function load() {
  const x = await import("./myClass")

  let thing:any = new x.MyClass()

  thing.init()
}

load()

这个代码分裂,但是MyClass现在没有输入,我在编辑器/ ide中丢失了任何类型的知识。

我觉得我错过了一些简单的东西,但我无法解决这个问题。

非常感谢。

更新#1 - tsconfig

{
    "compileOnSave": true,
    "compilerOptions": {
        "allowSyntheticDefaultImports": true,
        "alwaysStrict": true,
        "experimentalDecorators": true,
        "importHelpers": true,
        "listFiles": false,
        "module": "esnext",
        "moduleResolution": "node",
        "noEmitHelpers": true,
        "noEmitOnError": false,
        "noFallthroughCasesInSwitch": true,
        "noImplicitReturns": true,
        "noImplicitThis": true,
        "noImplicitAny": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "outDir": "js",
        "removeComments": false,
        "sourceMap": true,
        "strictFunctionTypes": true,
        "strictNullChecks": true,
        "target": "es2017",
        "typeRoots": ["../node_modules/@types", "../typings"]
    },
    "exclude": ["../node_modules", "js/**/*"],
    "include": ["ts/**/*.ts", "../typings/globals/*.d.ts"]
}

0 个答案:

没有答案