【问题标题】:How do I update dependency packages in a project without breaking the dependency tree on install?如何在不破坏安装依赖树的情况下更新项目中的依赖包?
【发布时间】:2021-12-29 15:43:47
【问题描述】:

我最近在我工作的公司创建了一个基本的 Typescript/React npm 包供内部使用,由于这是我第一次构建它,我使用了一个名为 create-react-library(找到 here)的工具帮助简化流程。该库使开发和发布我的包变得非常容易,但问题是它最近没有更新,因此一些依赖项已经过时,包括我们代码库的其余部分正在运行的 React 版本.如果我在npm install 上使用--legacy-peer-deps 标志,我可以在主项目中成功安装包,但这似乎不是一个理想的解决方案。在不破坏依赖树的情况下更新包的依赖关系的最佳方法是什么?我尝试通过我的package.json,手动将版本号更新到最新,然后删除node_modules 并重新运行npm install,但是我遇到了几个依赖树冲突并且安装失败。这里最好的方法是什么?

【问题讨论】:

  • 我也想知道。我了解到使用废弃软件制作组件库的艰难方式事后看来并不是我最聪明的时刻。最终从头开始使用旧的 create-react-app 并使用 babel CLI 将输出编译到 /dist 文件夹。如果这适用于您的用例,祝您好运!否则,希望图书馆大神给我们一些建议。 ??????
  • @Summer 我最终回到了我的package.json 并仅手动更新了 React 版本而没有其他任何内容,因为我制作的包非常轻量级,并且真的只依赖于此。开发代码和已发布的 npm 包的安装现在都可以正常工作,尽管有一些弃用警告。我在想自己重写包可能是最安全的方法,尽管我编写的代码并不太复杂。你知道你使用的 babel CLI 方法有什么好的教程吗?如果我找到了一个像样的,我可能会从头开始写这个。
  • 我偶然发现了this one,但除非你的库只有组件,否则如果你完全按照它,它将无法工作。它的要点在底部附近。确保编译你的src/ 目录,而不仅仅是src/components,并从index.ts 中导出你的东西。还要使用相对导入路径,否则 babel 会感到困惑。
  • @Summer 谢谢!

标签: node.js reactjs npm dependencies


【解决方案1】:

只设置确切的版本或〜,但没有^

【讨论】:

    猜你喜欢
    • 2013-02-19
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 2015-10-11
    • 1970-01-01
    • 2021-09-21
    相关资源
    最近更新 更多