NPM 更新模块
让我们检查一下 underscore 是否有更新
$ npm outdated Package Current Wanted Latest Location underscore 1.8.2 1.8.3 1.8.3 project
Current 这一列告诉我们我们本地安装的 underscore 版本,Latest 这一列则告诉我们当前的 underscore 的最新版本,Wanted 这一列则表示在不破坏当前代码的前提下,我们可以升级的最新版本。
记得我们之前所说的 package-lock.json 文件吗?
npm5 开始引入这个文件,目的是记住安装的依赖包的版本号,从而使每台机器上安装的依赖包的版本都相同。每当你修改了 node_modules 文件夹或者 package.json 文件,package-lock.json 文件将会自动生成。
你可以尝试一个这个特性,删除 node_modules 文件夹,重新运行 npm i 。
新版本的 npm5 将会安装 v1.8.2 版本的 Underscore。(因为在 package-lock.json 指定了 Underscore 的版本为 1.8.2)。而旧版本的 npm 会安装 1.8.3 版本的 Underscore。之前的经验证明,版本不一致的依赖模块将会给开发者带来很大的麻烦,在之前,你需要手动创建一个 npm-shrinkwrap.json 文件来避免这个问题。
现在,假设 Underscore 的最新版本已经修复了我们之前遇到的 bug, 我们现在要更新 Underscore 至最新版本。
$ npm update underscore+ underscore@1.8.3updated 1 package in 0.236s $ npm list project@1.0.0 /home/sitepoint/project └── underscore@1.8.3
提示: 为了上述操作能生效,Underscore 必须位于 package.json 的 dependency 中。另外,如果你也很多过时的模块,可以执行 npm update 命令一起更新所有模块。