npm update 没有更新 package.json 文件中的版本

Jam*_*med 35 javascript node.js npm

我正在尝试更新我的项目中的特定包。我已经使用它进行了检查npm outdated,然后运行此命令来更新此包:npm update nameofpackagenpm update slugify.

之后我的 package.json 文件没有更新,尽管当我再次运行 npm outdated 时它没有显示过时的包。这意味着它已更新,但我的 package.json 文件仍然显示该包的旧版本。

请让我知道如何更新我的 package.json 文件。我也尝试过npm update slugify --save,但它对我没有用。

Ant*_*nin 39

该命令的目的是根据您在文件中指定的内容npm update更新您的文件。这是正常行为。package-lock.jsonpackage.json

如果您想更新 package.json 文件,可以使用npm-check-updates : npm install -g npm-check-updates

然后您可以使用这些命令:

  1. ncu检查 package.json 文件中的更新
  2. ncu -u更新 package.json 文件
  3. npm update --save从 package.json 文件更新 package-lock.json 文件

  • 从 npm v8 开始,您必须将 `--save` 添加到 `npm update` 命令中,以确保 package.json 也被更新。 (36认同)
  • 为什么有人*不*希望他们的 package.json 反映最新的更新? (5认同)

csm*_*ter 5

简单且最近:

\n

ncu全局安装包:

\n
npm install -g npm-check-updates\n
Run Code Online (Sandbox Code Playgroud)\n

然后下面这两段代码:

\n

检查最新更新:

\n

如果您想要更新所有依赖项,无论 package.json 文件中的次要或主要更新限制(~、^)如何,请运行以下代码以首先检查可用的更新选项:

\n
$ ncu\n[====================] 4/4 100%\n\n react          16.8.6  \xe2\x86\x92  18.2.0\n react-dom      16.8.6  \xe2\x86\x92  18.2.0\n react-scripts   3.2.0  \xe2\x86\x92   5.0.1\n typescript      3.3.3  \xe2\x86\x92   4.9.4\n
Run Code Online (Sandbox Code Playgroud)\n

更新 package.json 文件:

\n

运行 ncu -u 升级 package.json。

\n

注意npm update唯一检查有关 semver 的更新(请参阅此处的文档) 。

\n
ncu -u\n\n
Run Code Online (Sandbox Code Playgroud)\n

然后运行npm update命令更新package-lock.json并优化package.json中的依赖更新。

\n
npm update --save\n
Run Code Online (Sandbox Code Playgroud)\n

最后,运行以下命令来安装软件包:

\n
npm install\n\n
Run Code Online (Sandbox Code Playgroud)\n

注意:ncu 仅更新 package.json 文件。

\n