2015-05-06 141 views
41

運行--save-dev後package.json不會更新是否存在簡單或細微的原因?這是我的命令:從項目的根npm install packagename --save-dev沒有更新package.json

npm install modulename --save-dev

運行。該命令成功完成,新模塊按預期顯示在node_modules目錄中。幫助將不勝感激。我使用NPM v 1.4.28

我目前package.json全部是:

{ 
    "name": "FooWeb", 
    "version": "1.0.0", 
    "description": "Foo Web", 
    "devDependencies": { 
     "gulp": "3.8.11", 
     "gulp-jshint": "1.9.2", 
     "gulp-concat": "2.5.2", 
     "gulp-sass": "1.3.3", 
     "gulp-sourcemaps": "1.4.0", 
     "gulp-watch": "4.1.1" 
    } 
} 

我得到上安裝包,我沒有庫場或自述的警告,但我認爲這是不相關的。

+0

'npm ls'工作嗎? –

+0

您是否檢查package.json權限? – Aaron

+0

@Aaron package.json權限沒問題。 –

回答

46

我也有這個問題,它讓我發瘋。

終於修好了它運行的是什麼npm init。這添加了一堆東西到我的package.json,但後來--save-dev按預期工作。即使我刪除了所有新增的東西npm init--save-dev仍然有效。

+0

是的,這對我在Ubuntu 14.04上工作。感謝那 – Mattijs

+1

也爲我工作。甚至沒有添加任何東西到我現有的'package.json' – Ben

+9

沒有爲我工作。不管怎麼說,還是要謝謝你。 – spryce

0

我的package.json中有一個語法錯誤導致了我的這個錯誤!

4

我-g標誌那裏,當我刪除它,它的工作如預期...

2

導航到JSON文件 - >右鍵屬性 - >刪除「只讀」標誌。

1

Mustafah ELBanna的回答幫了我,但我想擴大他的答案,像我這樣的其他新手。如果我錯過了重要的事情,請糾正我。

如果您刪除了-g標誌,則該模塊不是全局安裝在您的機器上,而僅安裝在您的項目中。如果你也希望它在全球範圍內安裝,與-g代替--save-dev這樣再次,但現在執行相同的命令:

npm install --save-dev [packagename]

npm install -g [packagename]

在我看來,調用-g當事情可能出錯和--save在一行中。

但是,我是新來的,我很欣賞任何想改進/糾正我的答案的人。

0

對我來說,問題是我從記事本++複製命令它可能有特殊字符在那裏或它是空格,它不更新我的package.json。

例如不工作; npm install --save debug pug jwt-simple method-override mongoose

確保在安裝時清理命令行,例如,每個模塊之間有任何空格,因爲根據您的編碼,可能會有特殊的字符。

當我糾正它到這個工作。

npm install --save debug pug jwt-simple method-override mongoose

此外,請確保您在運行命令的package.json不是在編輯器中打開,因爲不是所有的編輯處理這個優雅。

0

當我使用快遞發生器後,我安裝了一些軟件包,但沒有添加到package.json中。

然後我刪除的package.json和運行NPM init和所有的人加入,而無需安裝再次

0

我有一個.npmrc文件使用一個npm API構建的內部獲取的軟件包。我的問題是我沒有連接到我公司的VPN

0

我嘗試了上述答案中提到的所有命令,但在安裝npm-upgrade軟件包時取得了成功。

npm i -g npm-upgrade然後 npm-upgrade

0

我能夠解決,這是通過使用npm install --save-dev moduleName代替npm install moduleName --save-dev的唯一途徑。不過,使用npm install moduleName --save對我來說效果不錯。只有當我使用--save-dev時,我必須把它放在moduleName之前。我希望這可以幫助任何人。

1

我試圖安裝使用 「NPM安裝--save咕嚕-青菜」,但的package.json不會更新

我之上,但沒有運氣提到的一切gruntjs。但有趣的是,如果我嘗試添加一個包,比如說「下劃線(npm install --save underscore)」,那麼兒子會得到更新。我不確定這是否與nam有關。我確實以超級用戶身份安裝。

0

您可能首先要檢查您的配置(npm config ls命令或~/.npmrc文件)。 我有link=true

在版本5.5.1中,當- 保存處於活動狀態時,該選項似乎被忽略。 由於--save-dev取代- 保存鏈接模式再次處於活動狀態。

因此,對於我來說,事情就好像--save被覆蓋了--link,而這又被覆蓋了--save-dev

0

如果你有一個未保存的package.json open,這可能發生在VSCode(或可能是其他編輯器)。

文件實際上正在更新但未在IDE中重新加載。 我想也許默認是隻在文件未編輯時重新加載?或者,也許我點擊了某些內容來忽略警告。

+0

(所以在這種情況下,'save-dev'是一條紅色鯡魚) –

+0

(注意:VSCode與VS中的Save All的快捷方式不同) –

相關問題