Typescript,index.d.ts和webpack:找不到模块错误

时间:2016-07-07 17:13:42

标签: typescript

我在this tutorial之后使用webpack创建了Typescript项目。 由于我有很多模块,我将index.d.ts添加到我的src / components文件夹中,我导出了所有模块:

export {Module1} from "./Module1";
export {Module2} from "./Module2";
export {Module3} from "./Module3";

我将index.d.ts添加到tsconfig.json文件:

"files": [
    "./src/components/index.d.ts"
]

然后,在index.tsx中,在src文件夹中,我导入:

import * as MyModule from "./components/";

代码提示工作正常,所以我认为所有路径都可以。 但是,当我运行webpack时,我收到此错误:

找不到模块:错误:无法解析目录'./components'

据我所知,webpack找不到这个index.d.ts文件。我尝试将d.ts添加到webpack.config.js扩展名,例如described here,但后来我收到了不同的错误消息。我错过了什么吗?

2 个答案:

答案 0 :(得分:2)

提出了一个解决方案,可以将index.ts用于所有导出,而不是index.d.ts。

答案 1 :(得分:0)

对我来说,我最终将它从 './types' 更改为 './types.d'

所以类型导入看起来像,

import {
    TSomeType,
    ISomeInterface,
    ESomeEnum
} from 'src/types/components/SomeComponent/types.d'

代替,

import {
    TSomeType,
    ISomeInterface,
    ESomeEnum
} from 'src/types/components/SomeComponent/types'

摘自 this 评论:

<块引用>

我可以确认这个问题,@Draccoz @filipesilva。

<块引用>

将文件名从 .d.ts 更改为 .ts 时不会发生这种情况。 当您从 import {Something } from 'yourlib' 更改导入时,也不会发生这种情况。从'yourlib.d'导入{东西};

<块引用>

我刚刚将一个工作项目从 webpack-starter 种子(TypeScript/Angular)移动到 CLI 并出现此错误,因此我认为它与生成的 CLI 项目有关。

<块引用>

我正在使用@angular/cli: 1.0.0-rc.2


我认为还值得注意的是 tsx 文件工作得很好。我不得不将 types 更改为 types.d 仅用于 ts 文件。