NodeJS 匯入包的時候出現的 @types 錯誤導致程式無法執行
在一次開發 NodeJS 專案的時候,我們希望包的匯入是用 import 匯入的方式。
但是在具體匯入的時候發現是使用 @types 匯入的。
如果上面的圖顯示的匯入方式,結果結果是導致程式錯誤無法執行。
問題和原因
儘管我們在包的配置檔案中添加了需要匯入的包的版本。
“bluebird”: “^3。5。1”,
但是我們發現還是沒有正確的使用,還是使用的是 @types 的方式。
@types
經過一些研究,有時候 @types 這個的使用是因為在 JS 世界中有很多的包不是透過 TypeScript 進行開發的,使用是普通的 JS 。
為了讓使用 JS 的庫能夠在 TypeScript 上使用,那麼我們在匯入的時候需要新增 @types
但是我們的這個問題是,我們並沒有新增需要的 @types/bluebird, 但是這個是從哪裡來的呢?
這個時候,我們需要找到這個包匯入的依賴了。
在匯入這個包所在專案的資料夾中,開啟 package。json 這個檔案。
在這個檔案中也沒有找到這個包的依賴,也不是使用types 定義的。
只能從專案中的依賴找原因了。
在這個檔案中,我們會看到
“_requiredBy”: [ “/@types/request-promise” ],
這個就是讓 @types/bluebird 匯入的元兇了,因為這個型別是 @types 的,所以我們按照 @types 匯入了 bluebird。
但是實際使用的時候,我們的程式使用的是另外的一種匯入方式。
因此,針對這個問題,我們最簡單的辦法就是將 /@types/request-promise 從你的包的依賴中刪除。
這樣就能解決我們上面遇到的問題了。
https://www。ossez。com/t/nodejs-types/13801