如何正确更新库部件

sua*_*kim 5 updates aurelia aurelia-cli aurelia-framework

几个星期前我开始了一个新的CLI项目,它将CLI安装v0.24.0在框架中v1.0.8.

由于他们本周发布了一些更新(CLI v0.26.0,Framework v1.1.0,...),我想知道如何正确更新核心组件.

我的内容中包含以下aurelia依赖项package.json:

{
  // ...
  "dependencies": {
    "aurelia-animator-css": "^1.0.0",
    "aurelia-api": "^3.1.1",
    "aurelia-authentication": "^3.2.0",
    "aurelia-bootstrapper": "^1.0.0",
    "aurelia-fetch-client": "^1.1.0",
    // ...
  },
  "devDependencies": {
    "aurelia-cli": "^0.24.0",
    "aurelia-testing": "^1.0.0-beta.2.0.0",
    "aurelia-tools": "^0.2.2",
    // ...
  },
  // ...
}
Run Code Online (Sandbox Code Playgroud)

与NPM上的最新版本相比,这些软件包中的以下软件包已过时:

  • aurelia-cli 0.24.0,最新消息0.26.0
  • aurelia-animator-css 1.0.0,最新消息1.0.1
  • aurelia-bootstrapper 1.0.0,最新2.1.0
  • aurelia-fetch-client 1.1.0,最新1.1.1
  • aurelia-testing ^1.0.0-beta.2.0.0,最新^1.0.0-beta.3.0.0
  • aurelia-tools 0.2.2,最新1.0.0

由于所有这些软件包都使用插入符版本范围,因此大多数软件包在运行时不会自动更新到最新版本npm update.

这是我的问题

  1. package.json当我想将框架带到最新状态时,是否必须手动更新我提到的每个包中的版本?(似乎很明显)
    • 我知道我可以使用波形符x范围内的东西,package.json但这不是我正在寻找的,因为我想明确允许安装新版本以确保其他开发人员或构建服务器不起作用完全不同的版本......
  2. 是否有一些简化的过程来查找我使用的每个框架包的最新版本号,或者我必须像编写此问题时那样从npm.org手动"抓取"版本?
  3. aurelia-framework包不是我内的任何地方提到的package.json文件,它不会自动运行更新npm update.我如何实际更新它?

Eri*_*ben 7

CLI的文档说明要添加一个NPM脚本,您可以运行该脚本以更新所有版本到最新版本:

https://github.com/aurelia/framework/blob/master/doc/article/en-US/the-aurelia-cli.md#updating-multiple-libraries.

这意味着在package.json脚本部分添加这样的内容:

    "au-update": "npm i aurelia-binding@latest aurelia-bootstrapper@latest aurelia-dependency-injection@latest aurelia-event-aggregator@latest aurelia-framework@latest aurelia-history@latest aurelia-history-browser@latest aurelia-loader@latest aurelia-loader-default@latest aurelia-logging@latest aurelia-logging-console@latest aurelia-metadata@latest aurelia-pal@latest aurelia-pal-browser@latest aurelia-path@latest aurelia-polyfills@latest aurelia-route-recognizer@latest aurelia-router@latest aurelia-task-queue@latest aurelia-templating@latest aurelia-templating-binding@latest aurelia-templating-resources@latest aurelia-templating-router@latest aurelia-testing@latest aurelia-dialog@latest -S",
Run Code Online (Sandbox Code Playgroud)

第一次升级它会将package.json中的引用添加到它们中,因此依赖项部分会更大/添加所有缺少的嵌套依赖项.

另一种方法是使用NPM包对所有包执行这些检查npm检查更新也是非Aurelia包.

这可以让你做到:

ncu
Run Code Online (Sandbox Code Playgroud)

检查哪些包已过时,以及

ncu -u
Run Code Online (Sandbox Code Playgroud)

将它们全部升级到最新版本,忽略了semver限制.