有人可以解释一下 Angular 6 和npm update
中ng update
之间的区别吗?
ng update:将当前应用程序更新到最新版本。
就像Web和整个Web生态系统一样,Angular也在不断改进。Angular 天平持续改进,非常注重稳定性并简化更新。使您的 Angular 应用程序保持最新状态使您能够利用领先的新功能以及优化和错误修复。
本文档包含的信息和资源可帮助您使 Angular 应用程序和库保持最新状态。
npm update:此命令会将列出的所有软件包更新到最新版本(由标记配置指定(,尊重 semver。
它还将安装缺少的软件包。与所有安装软件包的命令一样,--dev 标志也会导致处理 devDependencies。
如果指定了 -g 标志,则此命令将更新全局安装的软件包。
如果未指定包名称,则将更新指定位置(全局或本地(中的所有包。
从 npm@2.6.1 开始,npm 更新将仅检查顶级包。以前版本的 npm 也会递归检查所有依赖项。若要获取旧行为,请使用 npm --depth 9999 更新。
从 npm@5.0.0 开始,npm 更新将更改 package.json 以将新版本保存为所需的最低依赖项。若要获取旧行为,请使用 npm update --no-save。
来源:
https://github.com/angular/angular-cli/wiki/update
https://docs.npmjs.com/cli/update
ng update
做的不仅仅是npm update
ng update
将更新您的依赖项(与npm update
相同(,但除此之外,它还可以运行更新原理图:库作者可能会包含此类原理图以在更新过程中自动更新您的代码(即打字稿(文件:即他们可以直接修复代码中的重大更改。
来自 ng-update: 库开发人员:
库负责定义自己的更新原理图。 ng 更新工具将更新 package.json,如果它检测到 库的package.json中的"ng-update"键,将运行更新 原理图(带有版本信息元数据(。
如果库未在其中定义"ng-update"键 package.json,它们被认为不支持更新工作流 而ng更新基本上等同于npm安装。
当ng update
完成后:
- 您的
package.json
文件将包含更新的版本 - 包安装在
node_modules
文件夹中 - 您的源代码可能已被更新原理图更改 因此,现在是使用版本控制系统检查更改和测试应用程序的好时机。