还有一个 "unmet peer dependency" 个问题
Yet another "unmet peer dependency" question
尽管阅读了许多 SO 问题和文档,但我仍然不明白这一点。因此,如果这真的是一个骗局,请随时指出任何可以解释它的地方。
使用 yarn 将 firebase 添加到我的 Vue.js 项目后,我得到了很多:
warning "firebase > @firebase/database@0.3.12" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/firestore@1.0.4" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/functions@0.3.7" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/messaging@0.3.11" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/storage@0.2.8" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/auth > @firebase/auth-types@0.5.2" has unmet peer dependency "@firebase/app-types@0.x".
我确实已经安装了@firebase/app-types@0.3.4,作为依赖项(列在我的yarn.lock中,但不在package.json中)。
我可以通过手动执行 yarn add @firebase/app-types
来解决这些错误,但我不明白为什么我需要这样做——我从来没有在我的应用程序中直接从 @firebase/app-types 调用任何东西。如果 firebase 依赖于它,并且已经安装,为什么会出现此错误?我想我真的不明白 unmet "peer dependency" 的真正含义。这真的是 firebase (@5.8.4) 本身的问题吗?
我已经通读了 https://yarnpkg.com/lang/en/docs/dependency-types/,上面写着 "Peer dependencies are a special type of dependency that would only ever come up if you were publishing your own package.",但很明显,尽管我没有发布自己的程序包,但它正在为我准备——我正在开发一个应用程序。我将不胜感激任何有关此主题的信息!
A "peer dependency" 最好理解为插件与其添加功能的软件之间的软依赖性 link。
如果每个插件都指定对主要软件的硬依赖,那么您将陷入版本控制地狱(比现在更糟)。
A "peer dependency" 允许 firebase 插件(例如)通过命名对等依赖项来提示它使用哪个版本的 firebase。
之所以这样称呼,是因为双方都不是关系中的 "owner",这是一种共生关系,具有额外功能的包仅适用于有限范围的 "host" 包版本.
I can resolve these errors by manually doing yarn add @firebase/app-types but I don't see why I need to do that -- I don't ever call anything from @firebase/app-types directly in my app.
因为 "peer dependency" 是提示,所以不会为您安装这些依赖项,它们更像是建议。不幸的是,由您决定是否需要那个东西,以及该警告是否有意义。
您可能是此错误 https://github.com/yarnpkg/yarn/issues/4850 的受害者,该错误引用了 app-types
包在非 TypeScript 包中 也需要 的问题。
您没有在 post 中包含语言标签,因此无法知道您使用的是 JavaScript 还是 TypeScript,但如果您使用的是 TypeScript,则可能应该添加该包作为开发依赖。
这就是对等依赖的含义,工具无法确定您是否需要那个东西,并且没有满足所有依赖可选(对等)依赖可能会破坏某些东西,因此 [warning]
。
您可能需要阅读 https://github.com/firebase/firebase-js-sdk/issues/1207#issuecomment-424804228 并注意对此没有非黑即白的答案,这似乎是非常主观的。
尽管阅读了许多 SO 问题和文档,但我仍然不明白这一点。因此,如果这真的是一个骗局,请随时指出任何可以解释它的地方。
使用 yarn 将 firebase 添加到我的 Vue.js 项目后,我得到了很多:
warning "firebase > @firebase/database@0.3.12" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/firestore@1.0.4" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/functions@0.3.7" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/messaging@0.3.11" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/storage@0.2.8" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/auth > @firebase/auth-types@0.5.2" has unmet peer dependency "@firebase/app-types@0.x".
我确实已经安装了@firebase/app-types@0.3.4,作为依赖项(列在我的yarn.lock中,但不在package.json中)。
我可以通过手动执行 yarn add @firebase/app-types
来解决这些错误,但我不明白为什么我需要这样做——我从来没有在我的应用程序中直接从 @firebase/app-types 调用任何东西。如果 firebase 依赖于它,并且已经安装,为什么会出现此错误?我想我真的不明白 unmet "peer dependency" 的真正含义。这真的是 firebase (@5.8.4) 本身的问题吗?
我已经通读了 https://yarnpkg.com/lang/en/docs/dependency-types/,上面写着 "Peer dependencies are a special type of dependency that would only ever come up if you were publishing your own package.",但很明显,尽管我没有发布自己的程序包,但它正在为我准备——我正在开发一个应用程序。我将不胜感激任何有关此主题的信息!
A "peer dependency" 最好理解为插件与其添加功能的软件之间的软依赖性 link。
如果每个插件都指定对主要软件的硬依赖,那么您将陷入版本控制地狱(比现在更糟)。
A "peer dependency" 允许 firebase 插件(例如)通过命名对等依赖项来提示它使用哪个版本的 firebase。
之所以这样称呼,是因为双方都不是关系中的 "owner",这是一种共生关系,具有额外功能的包仅适用于有限范围的 "host" 包版本.
I can resolve these errors by manually doing yarn add @firebase/app-types but I don't see why I need to do that -- I don't ever call anything from @firebase/app-types directly in my app.
因为 "peer dependency" 是提示,所以不会为您安装这些依赖项,它们更像是建议。不幸的是,由您决定是否需要那个东西,以及该警告是否有意义。
您可能是此错误 https://github.com/yarnpkg/yarn/issues/4850 的受害者,该错误引用了 app-types
包在非 TypeScript 包中 也需要 的问题。
您没有在 post 中包含语言标签,因此无法知道您使用的是 JavaScript 还是 TypeScript,但如果您使用的是 TypeScript,则可能应该添加该包作为开发依赖。
这就是对等依赖的含义,工具无法确定您是否需要那个东西,并且没有满足所有依赖可选(对等)依赖可能会破坏某些东西,因此 [warning]
。
您可能需要阅读 https://github.com/firebase/firebase-js-sdk/issues/1207#issuecomment-424804228 并注意对此没有非黑即白的答案,这似乎是非常主观的。