将nativescript升级到4.1.0

时间:2018-05-28 09:43:42

标签: nativescript

在撰写本文时,npm上的nativescript版本为4.0.2,但在github上,有一个4.1.0标记。我想安装4.1.0,因为那里已修复了一些错误。

tns update 4.1.0返回Could not update the project!错误,npm install -g nativescript@4.1.0返回No matching version found错误。

如何升级?

2 个答案:

答案 0 :(得分:2)

使用

更新到最新版本
npm install -g nativescript

也可以关注Instructions

https://www.npmjs.com/package/nativescript

<强>更新 您无法更新到4.1.0,因为它没有版本。

但是,您可以使用以下内容升级/更新到RC

npm install -g nativescript@4.1.0-2018-05-25-11664

Screenshot for above

如果失败

尝试更新npm然后执行上述操作

这可能是由npm-audit-report

引起的

Reference

答案 1 :(得分:2)

警告:这可能非常流行。但是,让我帮你导航......

NativeScript有几个交织在一起的软件包。

  1. CLI(npm i -g nativescript)
  2. 核心模块(npm i tns-core-modules --save)
  3. 运行时android或ios(tns平台添加ios)
  4. 较新的运行时可能取决于核心模块中的功能;因此,如果更新运行时,可能必须确保拥有更新的核心模块。这并不总是需要的;我经常只测试三件事中的一件;但偶尔你需要更新所有内容才能使其正常工作。

    简单说明:

    npm i -g nativescript@rc
    npm i tns-core-modules@rc --save
    tns platform remove android 
    tns platform add android@rc 
    tns platform remove ios
    tns platform add ios@rc
    

    信息说明:

    CLI可能非常依赖于您计划使用的运行时版本。例如,当前的4.x cli不再适用于旧的2.x项目。但是,它确实继续适用于最近的3.x项目。反之亦然; 2.x CLI无法正确构建4.x项目。因此,使用与您计划使用的运行时相同的CLI主要版本更安全。 (通常您使用最新版本的运行时;但如果您现有的项目尚未升级,则可能仍有2.x项目)

    NativeScript有三个版本标签,具体取决于您的需求。

    1. 标准的@LATEST公开版(即npm i -g nativescript@latest)将为您提供当前最新的发布版本。通常npm i -g nativescript相当于@latest;但在核心模块的情况下,它将使用package.json文件中的版本。所以如果你想安装最新版本;在@latest上更加安全,以确保您获得最新版本。

    2. @NEXT版本;这实际上是一个LIE。 NEXT = Master ;这不是NativeScript的NEXT版本。这意味着您将获得已经接受掌握的所有内容,包括可能不会为多个版本(或任何版本)实际推出的内容。大师可以并且通常是越野车,有些日子比其他人多。下一个版本每晚生成。但它对测试修复是否有效非常有用;不要在@next上向客户发布应用程序;你很可能后悔。

    3. @RC版本;这实际上是候选版本。此版本通常在下一个公开版本的最终版本发布前一周左右显示。这通常是一个相当安全的版本;这些是手动生成的版本,以便在发布版本之前开始进行深入测试。请注意;一旦4.1被释放,RC将指向4.1 RC;这比最新的更早 - 不是最终版本。因此,当它实际指向比@latest更新的版本时,你只想使用@RC。

    4. 更新NativeScript CLI: 那么现在告诉你现在的版本是什么: npm info nativescript到今天你会看到:

        'dist-tags':
         { latest: '4.0.2',
           next: '4.2.0-2018-05-30-11723',
           rc: '4.1.0-2018-05-30-11720' },
      

      请注意@latest = 4.02,@ next = 4.2.x-DATE和@rc = 4.1.x-DATE

      在这种情况下;做npm i -g nativescript@next会给你当前的Master 4.2.x但是,因为你想要4.1并且最好是稳定的版本;因为RC已经更新到4.1;那么你最好的选择是: npm i -g nativescript@rc --save您将获得4.1.0的CLI。

      现在更新你的项目;

      更新核心模块 您可能希望再次执行npm info tns-core-modules以查看核心模块的标记,您会看到类似

      的内容
      'dist-tags':
         { latest: '4.0.1',
           next: '4.2.0-2018-05-30-01',
           rc: '4.1.0-2018-05-30-06' },
      

      就像CLI一样,你会使用npm i tns-core-modules@rc;请注意不要-g,因为这是一个作为应用程序一部分安装的软件包。

      更新Android运行时npm info tns-android

        'dist-tags':
         { latest: '4.0.1',
           next: '4.2.0-2018-05-30-01',
           rc: '4.1.1-rc-2018-05-28-03' },
      

      对于您需要删除旧版本的平台;然后安装新版本。

      tns platform remove android然后tns platform add android@rc

      更新iOS运行时npm info tns-ios

        'dist-tags':
         { latest: '4.0.1',
           next: '4.1.0-2018-05-25-01',
           rc: '4.1.0-rc-2018-05-26-01' },
      

      然后输入 tns platform remove ios然后tns platform add ios@rc

      最后的说明:

      • 您经常可以在不更新任何其他内容的情况下升级运行时或核心模块。但是,如果您在启动时遇到问题或应用程序崩溃;然后你可能需要更新所有要同步的内容。

      • 您可以npm i -g nativescript@4.1.0-2018-05-30-11720安装其特定版本。然而,在我做了这么多年的时间里,我无法想到除了@latest,@ next或@rc的标签以外我必须做的任何事情。

      • 请记住,您需要注意三个独立的部分; CLI(构建应用程序;但实际上对应用程序中的错误没有影响)。运行时(即运行代码的JavaScript引擎)和核心模块(即使<Label>的代码成为每个平台上正确的文本显示。取决于您的问题所在的层;这是一块你想升级。

      • 如果您使用的是NativeScript-Angular,NativeScript-Vue或NativeScript-Webpack;您可能需要安装其他部分才能使它们与@rc或@next版本兼容。