2017-07-03 52 views
1

在我的node.js項目中,我用來更改package.json文件中的依賴關係的版本號,然後運行npm installnpm update來安裝配置的版本。如何獲得npm v5安裝依賴關係我只是在package.json中手動更新的?

但是,由於我使用npm v5,這似乎不再有效 - 安裝和更新都不會實際安裝更新的版本。我正在運行node.js v8.1.3和npm v5.0.4。

現在我越來越訴諸一個可怕的解決辦法,迫使NPM實際更新depencencies,簡單地刪除並重新安裝所有的依賴關係:

rm -rf node_modules package-lock.json && npm install 

這有點像一個錯誤,而不是預期的行爲感到的。任何想法如何讓npm v5正常工作?

UPDATE:

看起來像故宮V5確實有一個bug:npm update不更新devDependencies,看到https://github.com/npm/npm/issues/16901

+0

也許你想看看[npm-check-updates](https://www.npmjs.com/package/npm-check-updates)。 – pzaenger

+0

@pzaenger是的,我一直使用npm-check-updates,就像一個魅力。只有npm v5根據package.json中的更改忘記更新開發依賴關係... –

回答

0

這是一個正確的[email protected]行爲。您應該使用命令行來處理包。

案例1

你需要的所有包的最新版本。在文件夾內使用npm update

案例2

你需要最新版本的軟件包package-onepackage-two的。使用npm update package-one package-two

案例3 你需要包package-onepackage-two的特定版本。使用npm install [email protected] [email protected]

在任何情況下,該命令將更新package.json,package-lock.json文件和node_module文件夾。

+1

感謝@galkin爲您提供明確的解釋,案例1確實是我想要和期待的。更多挖掘之後,它看起來像'npm update'按照'dependencies'的預期工作,但npm @ 5中有一個(已知的)用於更新'devDependencies'的bug,請參閱https://github.com/npm/npm/issues/16901。 –

0

安裝模塊的特定版本,你可以在故宮指定它安裝命令,並且--save也將它添加到你的package.json中。 這種方式爲我工作節點8.0.0和5.0.0 NPM(升級和降級版本)

npm install --save <module>@<version> 
+1

npm @ 5'--save'標誌默認爲true。 – galkin

相關問題