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