項目場景:
提示:這里簡述項目相關背景:
當我們新建vue3項目,package.json文件會自動給我添加一些配置選項,這寫選項基本沒有問題,但是在實際操作過程中,當項目越來越復雜就會出現問題,本文給大家分享vue+tsc+noEmit導致打包報TS類型錯誤問題及解決方法
問題描述
提示:這里描述項目中遇到的問題:
當我們新建vue3項目,package.json文件會自動給我添加一些配置選項,這寫選項基本沒有問題,但是在實際操作過程中,當項目越來越復雜就會出現問題。本文列舉一個目前我遇到的一個問題:打包后報了一堆TS類型錯誤,怎么消除這些錯誤?
原因分析:
提示:這里填寫問題的分析:
打包執行的是npm run build
命令,那么具體執行了什么呢?我們查看package.json
中配置項。
可以發現在build
時,執行了vue-tsc --noEmit && vite build
,其中
vue-tsc
:Vue 官方提供的命令,用于執行 TS 的類型檢查。它在執行時會根據項目中的 tsconfig.json 文件配置進行類型檢查--noEmit
:TS 編譯器的選項,使用 --noEmit 選項后,編譯器僅執行類型檢查,而不會生成任何實際的編譯輸出
所以可以看出了,在打包的時候編譯器執行了TS類型檢查,所以才報了一堆錯,類型錯誤最終不會影響項目的正常運行
解決方案:
提示:這里填寫該問題的具體解決方案:
根據上面分析,package.json
中的"scripts"
修改如下:
另外項目通常在編譯時候,也會對我們引入的一些依賴包進行類型校驗,我們并不需要這個操作,所以可以在tsconfig.json
中設置如下:
"compilerOptions":{"skipLibCheck":true
},
設置后編譯器不會檢查庫文件中的類型定義是否正確,也不會對庫文件的使用進行類型檢查。
再次打包就非常順利~