如何在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理的扩展可能需要重新编译,但无论您如何更改节点版本,这都是正确的。