如何在Windows上升级node.js?

我已经在Windows上运行了Node.js v0.8.0。 我可以运行最新的安装程序将其升级到v0.8.4吗? 我恐怕会打破我的机器上现有的第三方模块。

是的,你只需安装最新版本。 一般来说,如果您已经使用了相同的主要版本(例如版本0.8.x),则不应该有任何兼容性问题。 如果您担心更改,则可以始终检查每个版本的更新日志(链接到nodejs.org上的node.js下载页面上的更新日志)。 这应该告诉你任何重大的变化(即API变化等)。

为了logging,我刚刚经历了这个过程,即使升级到另一个主要版本也是无痛的。

我已经从0.8移到0.10,使用.msi包,覆盖我的系统上安装的。 软件包问题都是用npm update -g修复的。 像魅力一样工作。

如果它不能像魅力一样工作:

npm cache clean通常可以解决这个问题。 caching清空后,再次运行npm update -g

如果你真的遇到麻烦了:

删除全局安装的模块,然后重新安装。 就是这样:

  • 盘点你所拥有的东西: npm list -g --depth=0列出所有顶级包,包含版本号。 npm list -g --parseable --depth=0 > npm-global-modules.txt将它们写入你的cwd文件中。

    你自己没有安装的任何奇怪的东西可能已经安装了另一个模块(罕见的,但我已经看到它发生)。 从列表中删除这些模块。 还要删除模块“npm”。

  • 在编辑器中,通过用一个空格replace\n?[^\n]+[\\/] (regex)来格式化命令行的输出。

    (我没有把它用在pipe道中的findstr ,因此是编辑器的往返工作,当然你也可以手工完成)

  • 删除所有模块。 在Windows上,删除(或重命名) %appdata%\npm目录。 对于其他操作系统,请参阅命令全局删除所有npm模块?

  • npm install -g [your module list here]重新npm install -g [your module list here] 。 在做之前,不要忘记npm cache clean

我没有Windows上的节点经验,但我刚刚升级了我的Mac上的节点和模块,所以这只是一个普遍的答案:

如果你安装了v0.8,你可能会破坏现有的节点模块,如果它们使用了不推荐使用的函数等等。问题是npm只会在模块安装时检查节点版本,而不是在运行时检查。

为了安全起见,您需要在您的计算机上find全局的node_modules文件夹,将其备份到某处,然后删除并重新安装模块。 您需要为正在使用的应用程序中的node_modules文件夹执行相同的操作。 (假设你有package.json文件,重新安装这些应该很简单。)

在实践中,我不认为我使用的任何模块实际上是不兼容的。 祝你好运。

除非你使用的模块依赖于0.8.0版本中存在的实际bug,并且被0.8.4修复,否则你没有问题。 这两个版本之间没有API变化(节点组太聪明了,不能在次要版本中引入这些变化)。

目前正在升级到4.4。*。 我只是用来从nodejs.org网站安装程序,并升级一切正常工作。

只需到nodejs站点下载它。 你可以毫不犹豫地直接安装它。 如果您对早期版本有任何依赖性,请检查更改日志。

在Windows上安装节点的最佳方法是使用nvm-windows ,所以如果需要的话可以在不同的版本之间快速切换。 这类似于在linux和max上安装节点的最佳方法,即使用nvm 。

但Benjen是正确的(他怎么可能不能用他所有的侦察经验),你可以安装不同版本的节点,你的版本将会更新。 您的npm依赖关系可能需要重新安装,所有不受npmpipe理的扩展可能需要重新编译,但无论您如何更改节点版本,这都是正确的。