文件的Typescript动态import()仅适用于硬编码字符串

时间:2018-07-25 18:04:01

标签: node.js typescript dynamic import

我正在尝试使用import()在typescript中动态加载文件。如果我对文件的路径进行硬编码,我就设法使其正常工作,如下所示:

import("./file").then(module => doStuff(module)); // Success

但是,一旦我将路径存储在变量中,它将找不到该文件。 这将成功编译,但在运行时会抱怨:Cannot find module "./file"

path = "./file";
import(path).then(module => doStuff(module)); // Cannot find module "./file".

有什么办法可以解决此问题,或者有什么方法可以解决该问题?

tsconfig.json:

{
  "compilerOptions": {
  "sourceMap": true,
  "target": "es6",
  "module": "esnext",
  "strict": true,
  "allowJs": true,
  "lib": [
    "esnext"
  ],
  "moduleResolution": "node"
  },
  "exclude": [
    "node_modules"
  ]
}

1 个答案:

答案 0 :(得分:0)

是的,这是一个有趣的笑声

在导入内容前添加“ ../../”或类似名称(随它播放)

例如import(../../${m}.ts

解决问题的唯一方法是导入本身,而不是打字稿或其他。