簡體   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