npm 过时的全局包:如何实际更新包?

Ste*_* Lu 5 node.js npm

\xe2\x9d\xaf npm outdated -g\nPackage              Current  Wanted  Latest  Location\neslint                3.11.1  3.11.1  3.15.0\neslint-plugin-react    3.0.0   6.9.0   6.9.0\nflow-bin              0.35.0  0.39.0  0.39.0\ngrunt-cli             0.1.13   1.2.0   1.2.0\ngulp                   3.9.0   3.9.1   3.9.1\njshint                 2.8.0   2.9.4   2.9.4\nnpm                    3.8.6   4.3.0   4.2.0\nuglify-js              2.7.0   2.7.5   2.7.5\n
Run Code Online (Sandbox Code Playgroud)\n\n

想知道为什么我的 eslint 不会更新。npm upgrade -g -dd eslint给我看

\n\n
npm verb outdated not updating eslint because it's currently at the maximum version that matches its specified semver range\n
Run Code Online (Sandbox Code Playgroud)\n\n

这促使我尝试outdated,但无论哪种方式,全球package.json性都不存在。那么为什么我的版本仅限于 3.11?

\n\n

根据 npmjs 文档,

\n\n
\n

如果没有可用的 semver 范围(即您正在运行 npm outdated\n --global,或者该包未包含在 package.json 中),则 Wanted 将显示当前安装的版本。

\n
\n\n

这根本没有任何意义。

\n

Ste*_* Lu 2

按照事实上的工作流程npm,我们删除并重新安装该包。

npm remove -g eslint && npm install -g eslint

npm,你怎么这么坏?

  • 不需要“删除”。`npm install -g <package>` 将在注册表中选择标记为“latest”的版本并安装它。 (2认同)