3

我已经做了很多搜索,也许我的 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"]
}
4

0 回答 0