npm安装packagename --save-dev未更新package.json文件

61

运行 npm install modulename --save-dev 命令后,package.json 文件为何没有更新?是否存在简单或微妙的原因?该命令应当在项目根目录下执行。尽管命令成功执行,新模块也按预期出现在 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"
    }
}

我在安装一个没有存储库字段或README的包时会收到警告,但我认为这与此无关。


你检查了 package.json 的权限吗? - Aaron
@Aaron,package.json 权限没问题。 - Brian Muenzenmeyer
1
不知道 npm ls ,很好用!在我的情况下,它在树中为模块输出一个绿色的多余标签,然后显示 ERR! 多余: modulename@x.x.x. [path] 错误。我也会继续沿着这条路进行故障排除。 - Brian Muenzenmeyer
1
“--save” 对我有用 (https://dev59.com/4VoU5IYBdhLWcg3wTVoe#37603531) - Ryan
请尝试使用命令提示符而不是 VS Code 终端。 - Savannah Madison
21个回答

0

尽管已经接受了答案,但我的问题仍未解决,因此我尝试更改语法位置。 之前我使用以下命令将模块安装到devDependencies中

npm i --save-dev moduleName

然后我切换了moduleName和--save-dev的位置,成功将moduleName添加到package.json文件中

npm i moduleName--save-dev

然后,package.json文件将更新moduleName。


0

这是我在Intellij上遇到的问题

如果其他人也遇到了这个问题,你是否将你的项目从现有项目中复制过来了?

如果是这样,请关闭Intellij并删除.idea文件夹。(你也可以删除node_modules以获得一个全新的开始)

重新打开项目,问题就会解决。


0

在使用Express生成器后,我使用--s安装了一些包,但没有一个被添加到package.json中。

然后我删除了package.json并运行npm init,所有的包都被添加了,而不需要再次安装。


0

我有一个.npmrc文件,其中使用了内部构建的npm API来获取包。我的问题是我没有连接到公司的VPN


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 文件中有语法错误,导致出现这个问题!


0

从 package.json 文件中删除 devDependencies 依赖项,并仅使用 --save 重新安装适用于我的解决方案


0

我曾经遇到过同样的问题。当我安装某个包时,它没有显示在 package.json 文件中。所以我删除了 package.json 文件并再次运行了 npm init 命令。之后它就正常工作了,我之前安装的包也出现在了依赖项下。


欢迎来到StackOverflow!也许您可以添加更多细节,以更好地解释答案的最重要部分。阅读如何撰写好答案?获取更多信息。此外,一旦您获得更多声望,您将能够将其发布为评论而不是答案,这将更加合适。 - Francesco B.

0
我解决这个问题的唯一方法是使用npm install --save-dev moduleName而不是npm install moduleName --save-dev。对我来说,使用npm install moduleName --save也可以正常工作。只有在使用--save-dev时,我必须将其放在moduleName之前。希望这能帮助到大家。

0

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

在版本5.5.1中,当激活--save时,此选项似乎被忽略。 鉴于--save-dev优先于--save,因此链接模式再次激活。

所以对我来说,事情发生得好像--save覆盖了--link,而后者又覆盖了--save-dev


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接