2012-07-28 83 views
52

我已經有在Windows上運行的Node.js v0.8.0。我可以運行最新的安裝程序將其升級到v0.8.4嗎?我擔心它會破壞我機器上現有的第三方模塊。如何在Windows上升級node.js?

+3

使用巧克力:[在Windows上升級或安裝node.js](http://stackoverflow.com/a/25598244/138938「在Windows上升級node.js」) – 2014-09-01 14:27:40

回答

39

是的,你只需安裝最新版本。通常,如果您已經使用相同的主版本(例如,版本0.8.x),則不應該有任何兼容性問題。如果您擔心更改,可以隨時檢查每個版本的更新日誌(鏈接到nodejs.org上的node.js下載頁面上的更新日誌)。這應該告訴你任何重大變化(即API變化等)。

2

我沒有與Windows節點的經驗,但我剛剛升級的節點上我的Mac &模塊,所以這只是一個籠統的回答:

如果您安裝V0.8,你可能會打破你的現有的節點模塊,如果它們使用棄用的功能等。問題是npm只在模塊安裝時檢查節點的版本,而不是在運行時檢查。

爲了安全起見,您需要找到機器上的全局node_modules文件夾,將其備份到某處,然後刪除並重新安裝模塊。您需要爲正在使用的應用程序中的node_modules文件夾執行相同的操作。 (假設你有package.json文件,重新安裝這些文件應該很容易。)

實際上,我不認爲我使用的任何模塊實際上是不兼容的。祝你好運。

+0

不會'npm update'或'npm安裝-d'會訣竅,假設已安裝的模塊具有與新版本兼容的新版本? – Kato 2012-08-25 20:56:57

1

除非您使用的模塊依賴於0.8.0版本中存在的實際錯誤並且已被0.8.4修復,否則您沒有問題。這兩個版本之間沒有API更改(並且節點團隊太聰明,無法在次要版本中引入此類更改)。

37

爲了記錄,我剛剛經歷了這個過程,即使您升級到另一個主要版本,也是無痛的。

我已經從0.8改爲0.10,使用.msi包覆蓋我的系統上安裝的。包裝問題全部通過npm update -g修復。像魅力一樣工作。

如果它不工作就像一個魅力:

npm cache clean通常可以解決問題。緩存空置後,再次運行npm update -g

如果你真的遇到麻煩:

刪除已安裝在全球的模塊,然後重新安裝。具體方法如下: npm list -g --depth=0列出所有頂級封裝,版本號:

  • 你有什麼拿的股票。 npm list -g --parseable --depth=0 > npm-global-modules.txt將它們寫入您的cwd文件中。

    你自己沒有安裝的任何奇怪的東西可能已被另一個模塊安裝(很少見,但我已經看到它發生了)。從列表中刪除這些模塊。還要刪除模塊「npm」。

  • 在編輯器中,通過用一個空格替換\n?[^\n]+[\\/](正則表達式)來格式化命令行的輸出。

    (我沒有得到這與findstr管道中的工作,因此往返於編輯您也可以手動完成,當然,。)

  • 刪除所有模塊。在Windows上,刪除(或重命名)%appdata%\npm目錄。對於其他操作系統,請參閱Command to remove all npm modules globally?

  • npm install -g [your module list here]重新安裝模塊。在做之前不要忘記npm cache clean

+0

另外考慮使用'where node'來找到更多的位置,直到命令'npm'不給你任何東西。然後使用.exe或.msi重新安裝 – 2016-11-10 12:30:14

0

當前升級到4.4。*。我只是習慣從nodejs.org網站安裝,並升級一切正常工作。

0

只要去nodejs site &下載它。您可以毫不猶豫地直接安裝它。如果您對早期版本有任何依賴性,請檢查更改日誌。

0

在Windows上安裝節點的最佳方法是使用nvm-windows,因此如果需要可以在各個版本之間快速切換。這類似於在linux和max上安裝節點的最佳方式,即使用nvm

但Benjen是對的(他怎麼可能沒有他的偵察經驗),你可以安裝不同版本的節點,並且你的版本將會更新。您的npm依賴關係可能需要重新安裝,並且任何不由npm管理的擴展可能需要重新編譯,但無論您如何更改節點版本,這都是正確的。