如果我更新节点或软件包,它会影响我当前依赖于我之前的节点/软件包版本的应用程序吗?如果是,我该如何解决这个问题?也许就像一个虚拟环境:)
答案 0 :(得分:1)
您应该从2个角度来看待更新。 1.节点本身 2.更新NPM包
例如,Node LTS目前是6.1.10,然后是v7.7.3。如果您想要完全稳定,那么使用LTS。正如Cihan所说,如果你有一个在旧版本上运行的系统,升级Node可能是一个漫长的过程。
但是,如果你想测试已经在7.7.3中的新的async/await
(异步函数)并且应该在7.8中正式发布,那么7.7.3是可行的方法。但请记住,有些事情可能不会像您认为的那样有效,或者您可能会得到一些不稳定的结果。
另外请注意,根据您的服务器或系统,节点更新的工作方式不同,请务必阅读您需要升级的特定系统的文档。
NPM是一个不同的球赛。您依赖于许多不同的程序员或程序员组。该软件包取决于它们的能力和保持向后兼容性的愿望。大多数包装创作者对此非常满意。有些不是。
举个例子。 MongoDB issued a really new driver这是一个令人难以置信的升级。新驱动程序包含ES6,并与co package一起使用,它基本上与promises一起运行。
为MongoDB更新此软件包对我来说至关重要。但它确实维护了我之前的代码,(尽管现在很多都可能是多余的!)
因此,当您考虑更新Node..it时,与更新NPM模块不同。但是,如果您愿意,可以转到package.json
存在的项目根目录,只需键入npm update,所有包都将更新。 You can update to only a specific version - take a look here
还要记住,NPM本身也需要不时更新。
总结如下:
npm update
不断更新,或者只是根据上面的URL更新到特定的版本号。 并不像第一次看起来那样令人困惑,一旦人们直截了当地说:)
祝你好运
答案 1 :(得分:0)
您可能有另一个软件包正在使用的软件包,版本更改可能会破坏它。有几个选项,如果这是一个个人项目,那么你必须重新安装正确版本的软件包,或者看看是否有可用的更新可用于破坏的软件包。
答案 2 :(得分:0)
它不应该,因为npm是为了解决这个问题:每个项目都有自己的依赖项,并且它与其他项目完全独立。
总之,无论你做了什么改变,你都在项目中npm install
,npm将自己修复依赖问题(通过检查你的项目&package; json)
答案 3 :(得分:0)
npm-packages有时会更改或弃用某些功能&新版本的功能。如果更新软件包时某些内容仍然无法正常工作,则必须从更新软件包的文档中了解如何使其再次运行。许多软件包还可能在控制台中提供有关已弃用或已在未来版本中标记为弃用的功能的运行时信息/错误。
npm将下载软件包依赖项的特定版本(因此您通常可以在一个项目中拥有某个软件包的多个版本),因此您不必担心要更新的软件包的依赖关系,关于包装本身的变化。
某些npm-package版本仅支持某些版本的Node,因此更新节点版本可能需要更新某些软件包。如果您切换节点版本,它还将切换npm版本,然后将按节点版本安装正确版本的软件包。
如果更新Node.js,某些Node.js功能可能会停止工作。在这些情况下,您必须参考Node.js文档以获取帮助。有时将Node.js从旧版本更新到项目中的新版本是一项艰巨而繁琐的任务。