![](/img/trans.png)
[英]Typescript+webpack: typescript emmited no output for index.d.ts
[英]Typescript, index.d.ts and webpack: Module not found error
我按照本教程使用 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"
]
然后,在 src 文件夹中的 index.tsx 中,我导入:
import * as MyModule from "./components/";
代码提示工作正常,所以我想所有路径都可以。 但是,当我运行 webpack 时,出现此错误:
找不到模块:错误:无法解析目录“./components”
据我了解,webpack 没有找到这个 index.d.ts 文件。 我尝试将 d.ts 添加到 webpack.config.js 扩展中,就像这里描述的那样,但后来我收到了不同的错误消息。 我错过了什么吗?
想出了一个解决方案,将 index.ts 用于所有导出,而不是 index.d.ts。
对我来说,我最终将它从'./types'
更改为'./types.d'
。
所以类型导入看起来像,
import {
TSomeType,
ISomeInterface,
ESomeEnum
} from 'src/types/components/SomeComponent/types.d'
而不是,
import {
TSomeType,
ISomeInterface,
ESomeEnum
} from 'src/types/components/SomeComponent/types'
摘自此评论:
我可以确认这个问题,@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 文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.