我在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,但后来我收到了不同的错误消息。我错过了什么吗?
答案 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 文件。