繁体   English   中英

打字稿、index.d.ts 和 webpack:找不到模块错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM