npm update 不尊重 npm outdated 的结果

Posted

技术标签:

【中文标题】npm update 不尊重 npm outdated 的结果【英文标题】:npm update is not honoring the results of npm outdated 【发布时间】:2018-01-28 02:30:47 【问题描述】:

我在一个项目上运行了npm outdated - 它显示有几个过时的包。所以我跑了npm update——它更新了一些包,但不是全部。如果我再次运行npm outdated,它仍然会显示剩余的过期包:

Package Current Wanted Latest babel-loader 7.1.1 7.1.1 7.1.2 babel-runtime 6.23.0 6.23.0 6.26.0 chalk 2.0.1 2.0.1 2.1.0 css-loader 0.28.4 0.28.4 0.28.5 eslint 4.2.0 4.2.0 4.5.0 eslint-plugin-react 7.1.0 7.1.0 7.2.1 fs-extra 4.0.0 4.0.0 4.0.1 html-webpack-plugin 2.29.0 2.29.0 2.30.1 material-ui 1.0.0-beta.5 1.0.0-beta.5 0.19.0 postcss-flexbugs-fixes 3.0.0 3.0.0 3.2.0 react-stripe-elements 0.0.2 0.0.2 0.0.7 webpack 3.3.0 3.3.0 3.5.5 webpack-dev-server 2.5.1 2.5.1 2.7.1 webpack-manifest-plugin 1.1.2 1.1.2 1.3.1

如果我再次尝试运行npm update,它什么也不做!

为什么这两个命令告诉我不同​​的东西?

提前致谢。

【问题讨论】:

【参考方案1】:

如果您运行npm update 并且package.json 中定义的某些包的版本已固定,则不会更新。这就是为什么在运行 npm outdated 时会看到三列的原因。当前安装的版本,与package.json 中定义的匹配的最新版本,最后是实际的最新版本。

【讨论】:

感谢@aherriot 的快速回复。现在很清楚了!

以上是关于npm update 不尊重 npm outdated 的结果的主要内容,如果未能解决你的问题,请参考以下文章

Browserslist: caniuse-lite is outdated. Please run next command `npm update caniuse-lite browserslis

运行 `npm -g outdated` 时跳过一个包

“npm update”正在安装模块的 beta 版本,而不是在“npm install”之后安装的稳定版本

在 npm update 后运行 npm ls <package name> 不显示更新版本?

npm update 会使用 npm 缓存吗?

npm-check-updates (npm ncu):避免中断更新