在撰写本文时,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
错误。
如何升级?
答案 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
如果失败
尝试更新npm然后执行上述操作
这可能是由npm-audit-report
引起的答案 1 :(得分:2)
警告:这可能非常流行。但是,让我帮你导航......
NativeScript有几个交织在一起的软件包。
较新的运行时可能取决于核心模块中的功能;因此,如果更新运行时,可能必须确保拥有更新的核心模块。这并不总是需要的;我经常只测试三件事中的一件;但偶尔你需要更新所有内容才能使其正常工作。
简单说明:
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有三个版本标签,具体取决于您的需求。
标准的@LATEST公开版(即npm i -g nativescript@latest
)将为您提供当前最新的发布版本。通常npm i -g nativescript
相当于@latest;但在核心模块的情况下,它将使用package.json文件中的版本。所以如果你想安装最新版本;在@latest
上更加安全,以确保您获得最新版本。
@NEXT版本;这实际上是一个LIE。 NEXT = Master ;这不是NativeScript的NEXT版本。这意味着您将获得已经接受掌握的所有内容,包括可能不会为多个版本(或任何版本)实际推出的内容。大师可以并且通常是越野车,有些日子比其他人多。下一个版本每晚生成。但它对测试修复是否有效非常有用;不要在@next上向客户发布应用程序;你很可能后悔。
@RC版本;这实际上是候选版本。此版本通常在下一个公开版本的最终版本发布前一周左右显示。这通常是一个相当安全的版本;这些是手动生成的版本,以便在发布版本之前开始进行深入测试。请注意;一旦4.1被释放,RC将指向4.1 RC;这比最新的更早 - 不是最终版本。因此,当它实际指向比@latest更新的版本时,你只想使用@RC。
更新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版本兼容。