簡體   English   中英

為什么 package-lock.json 中有額外的必需依賴項?

[英]Why are there extra required dependencies in package-lock.json?

React 最近發布了一個新版本,它對 TypeScript 類型進行了重大更改(可以在此處閱讀)。 需要 "@types/react": "*" 的包自動針對這個新版本並導致我的項目中斷。

我認為我會 go 到具有這種需求風格的項目,並要求他們將依賴項更改為可選或刪除它。 然后我想我會更積極主動並提出拉取請求以自己進行更改並獲得一些為開源做出貢獻的經驗。

但是,我還沒有找到在項目中進行此更改的位置。 我已經查看了前 5 個有這個問題的包,但還沒有找到需要 @types/react 的地方。

例如,在我的 package-lock.json 文件中,@types/react-redux 的列表顯示它需要 @types/react: "*"

package-lock.json 文件中的@types/react-redux 條目

所以我 go 到@types/react-redux 的 npm 頁面,然后點擊鏈接到github 頁面(我還驗證了我使用的是最新版本)。 我希望可以在 package.json 文件中找到所需的包,除了@types/react。

@types/react-redux 的 package.json 的內容

由於這些需要“*”版本的@types/react,在自動引入對 React 的更改后,我們正在努力讓我們的項目再次運行。

誰能幫助我了解這是從哪里來的,以便我可以對這些項目提出拉取請求或要求維護人員進行更改?

這是因為index.d.ts導入了react ,但由於package.json不包含對@types/react的顯式依賴,DefinitelyTyped 使用 88718 編譯器 3437 提供的信息自動將其添加到 npm 包的生成的package.json

要固定依賴版本,只需將其顯式添加到package.json ,例如:


{
    "private": true,
    "dependencies": {
        "@types/hoist-non-react-statics": "^3.3.0",
        "@types/react": "16",
        "hoist-non-react-statics": "^3.3.0",
        "redux": "^4.0.0"
    }
}

"@types/react": "16"只是一個例子——使用適合的版本或版本范圍)。 有關真實示例,請參閱引入了類似更改的 合並拉取請求

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM