2015-05-06 122 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的快捷方式不同) –

相关问题