我正在嘗試將我的 node.js 應用程式部署到 Heroku 中,但是當我嘗試將我的專案推送到 Heroku 分支時,我得到:
remote: node_modules/@types/jsdom/base.d.ts:192:18 - error TS2411: Property '["Infinity"]' of type 'number' is not assignable to 'number' index type 'Window'.
remote:
remote: 192 readonly ["Infinity"]: number;
remote: ~~~~~~~~~~~~
remote: node_modules/@types/jsdom/base.d.ts:193:18 - error TS2411: Property '["NaN"]' of type 'number' is not assignable to 'number' index type 'Window'.
remote:
remote: 193 readonly ["NaN"]: number;
remote: ~~~~~~~
remote:
remote: Found 2 error(s).
Node.Js 版本:v17.0.1 Npm 版本:8.1.0
我用nest.js框架開發了這個專案,其實我在本地環境啟動的時候沒有問題。
uj5u.com熱心網友回復:
潛在的問題是最近更新了傳遞依賴項,并且該更新與打字稿不兼容。另外,我猜您的專案沒有使用鎖定檔案,如果是這種情況,則不太理想。
對于我的 nestjs 專案,問題在于 jest 的傳遞依賴。如果您正在使用 jest,請參閱此 github 討論以跟進并獲取更新,如果您無法立即開始使用鎖定檔案,則可能會獲得一些有關如何解決它的提示https://github.com/facebook/jest /issues/12098(似乎在底層 repo 中打開了一個 PR,但可能需要一些時間才能獲得批準并更新到 npm 的注冊表。https://github.com/DefinitelyTyped/DefinitelyTyped/pull/57432)
如果您的 git 存盤庫中沒有提交 package-lock.json 檔案,則應該添加它。Heroku 使用 package.json 或 package-lock.json 為您安裝依賴項,如果您想要可重現的構建,您一定要使用 package-lock.json。如果您在本地有一個 package-lock.json 檔案并且它當前被 git 忽略,您可以洗掉 .gitignore 檔案中的條目。
有關如何處理 package-lock.json 的更多資訊,請參閱 Heroku 的檔案:https ://devcenter.heroku.com/articles/nodejs-support#package-installation
Heroku 使用 lockfiles,無論是 package-lock.json 還是 yarn.lock,來安裝預期的依賴樹,所以一定要檢查這些檔案到 git 中以確保跨環境的依賴版本相同。如果您使用的是 npm,Heroku 將使用 npm ci 來設定構建環境。
uj5u.com熱心網友回復:
skipLibCheck: true在 tsconfig.json 中使用選項可能是一個臨時解決方案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/371156.html
上一篇:Django與Heroku
