如何正确更新库部件

时间:2017-03-05 11:06:37

标签: updates aurelia aurelia-cli aurelia-framework

我几个星期前开始了一个新的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",
    // ...
  },
  // ...
}

与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

由于所有这些软件包都使用caret version range,因此大多数软件包在运行npm update时都不会自动更新到最新版本。

以下是我的问题

  1. 当我想将框架置于最新状态时,是否必须手动更新package.json中每个提到的包的版本? (似乎很明显)
    • 我知道我可以在package.json中使用tildex ranges之类的内容,但这不是我正在寻找的内容,因为我想明确允许新版本安装以确保其他开发人员或构建服务器不能使用完全不同的版本...
  2. 是否有一些简化的流程可以找到我使用的每个框架包的最新版本号,或者我是否必须像编写此问题时那样从npm.org手动“抓取”版本?
  3. 我的aurelia-framework文件中的任何地方都没有提及package.json包,并且它不会通过运行npm update自动更新。我如何实际更新它?

1 个答案:

答案 0 :(得分:6)

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",

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

另一种方法是使用NPM包对所有包npm check updates以及非Aurelia包执行这些检查。

允许您这样做:

ncu

检查哪些包已过时,

ncu -u

将它们全部升级到忽略semver限制的最新版本。