首页 > 解决方案 > Typescript 动态模块导入抛出错误

问题描述

我想动态导入模块。

consumers.ts

if (condition) {
    import("src/app/apis/mocks/consumer-list.dev");
}

但上面的代码会引发以下错误:

Cannot find module 'src/app/apis/mocks/consumer-list.dev'

同时,当我对同一路径使用非动态导入时,一切正常

import { consumers } from "src/app/apis/mocks/consumer-list.dev";
  1. 为什么动态导入失败?
  2. 我需要做什么才能让它工作?

打字稿版本:2.9.2

模块结构:

------src
--------app
----------apis
-------------mocks
-----------------consumer-list.dev.ts
-------------consumers.ts

标签: angulartypescript

解决方案


你有哪个版本的打字稿?(自 TypeScript 2.4 起支持导入。)尝试使用相对的 ./ 作为路径的开头。

const module = './src/app/apis/mocks/consumer-list.dev';

import 函数是同步的并返回一个 Promise。

 import('module').then(e => {
        consol.log(e);
    });

推荐阅读