【发布时间】:2018-05-14 06:34:15
【问题描述】:
TL;DR
从 node v4 迁移到 node 8 时,有没有办法检查 npm 损坏的包?
长篇大论: 我有一个在 node v4 上运行的生产应用程序。我的道德价值观正在推动我从 v4 升级到 v8。我知道我的代码不会中断,但我也想确定我的包。我有 staging env 设置。我可以先在那里设置node 8。然而我想要完全自信,没有什么会破裂。或者只是我希望过渡顺利。 这样做的最佳做法是什么?
【问题讨论】:
TL;DR
从 node v4 迁移到 node 8 时,有没有办法检查 npm 损坏的包?
长篇大论: 我有一个在 node v4 上运行的生产应用程序。我的道德价值观正在推动我从 v4 升级到 v8。我知道我的代码不会中断,但我也想确定我的包。我有 staging env 设置。我可以先在那里设置node 8。然而我想要完全自信,没有什么会破裂。或者只是我希望过渡顺利。 这样做的最佳做法是什么?
【问题讨论】:
如果你的项目有单元测试(你应该),如果你的测试仍然在 Node 8 上通过,你可能没问题。
请注意,Node 8 附带了 npm v5。您需要确保在测试之前干净安装了node_modules(即您应该rm -rf node_modules,然后重新安装您的依赖项)。 npm 5 比 npm 2(Node 4 附带)具有更扁平的依赖关系树,因此在极少数情况下,这可能会导致事情中断。
当您在 Node 8 上运行全新安装时,请注意任何可能表明存在问题的警告输出,尤其是不兼容的引擎消息。
此外,npm 5 默认创建 package-lock.json 文件,您可能希望在此处更详细地查看:https://stackoverflow.com/a/44297998/7127751。
如果您想真正安全,请检查所有依赖项并查看您使用的版本是否正在节点 8 上进行测试(即检查每个依赖项存储库中的 .travis.yml 文件)。
【讨论】: