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

zer*_*oin 6 typescript

我按照本教程使用webpack创建了Typescript项目.由于我有很多模块,我将index.d.ts添加到我的src/components文件夹中,我将导出所有模块:

export {Module1} from "./Module1";
export {Module2} from "./Module2";
export {Module3} from "./Module3";
Run Code Online (Sandbox Code Playgroud)

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

"files": [
    "./src/components/index.d.ts"
]
Run Code Online (Sandbox Code Playgroud)

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

import * as MyModule from "./components/";
Run Code Online (Sandbox Code Playgroud)

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

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

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

Mik*_*e K 5

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

所以类型导入看起来像这样,

import {
    TSomeType,
    ISomeInterface,
    ESomeEnum
} from 'src/types/components/SomeComponent/types.d'
Run Code Online (Sandbox Code Playgroud)

代替,

import {
    TSomeType,
    ISomeInterface,
    ESomeEnum
} from 'src/types/components/SomeComponent/types'
Run Code Online (Sandbox Code Playgroud)

摘自评论:

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

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

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

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


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


zer*_*oin 3

想出了一个解决方案,对所有导出使用index.ts而不是index.d.ts。