升级 Angular 6 到 Angular 7 beta

5

我有一个使用Angular 6的现有项目。我希望将其升级到版本7 beta,并启用Ivy渲染器。

正确的步骤是什么?


2
升级从LTS版本到非LTS beta版本...为什么? - smnbbrv
1
@smnbbrv 我在工作中得到了这样的要求。我也非常怀疑,但该怎么办呢?那个常春藤渲染器和小应用程序的需求很大。 - Ap0st0l
1
在Angular 6中,可以在Angular CLI中启用Ivy渲染器,而无需迁移到7。 - smnbbrv
3
艾菲渲染器还不完整,也不适合生产环境使用。 - Ploppy
当Angular 7发布时,Ivy渲染器仍将是一个正在进行中的工作。 - Jensdc
1个回答

10

好的,既然没有人帮忙,我会写下我自己找到的解决方案。

  1. (可选) 如果你使用NVM,你可以首先安装最新的node.js,并切换到它,以避免可能出现的问题。
  2. 全局和本地安装版本为7的beta angular/cli。
  3. 在package.json文件中用^7.0.0-beta.5替换所有当前Angular版本(例如6.1.7)的出现。
  4. 执行npm install命令。
  5. 如果出现问题,请删除node_modules文件夹并再次尝试npm install。

如果你想确保你的其他包都是最新版本,你可以在其他位置安装一个空的Angular 7应用程序,然后检查在package.json文件中发生了什么变化。不幸的是,Angular团队没有提供一个工具来安装特定版本的Angular,但是beta cli默认安装Angular 7。

至于Ivy渲染器,在Angular 7 beta中并不是默认启用的。我尝试手动启用它,但它不起作用。似乎这个项目需要更多的工作才能完成,而在互联网上关于如何在高级项目中正确使用它的信息很少(只有一些针对空项目的非常简单的教程)。

Ivy渲染器状态:https://is-angular-ivy-ready.firebaseapp.com/#/status

https://github.com/angular/angular/blob/master/packages/core/src/render3/STATUS.md

Ivy渲染器教程: https://blog.imaginea.com/ivy-a-look-at-the-new-render-engine-for-angular/


1
是的,你说得对...但你不必经过所有这些才知道IVY还没有准备好(我顶了你的帖子)。如果我是你,我会等一段时间,正如其他人所说,他们还有很长的路要走。延迟加载可以让你走得更远,现在是否可以采用这种方式来使你的初始应用程序负载更小? - Spock
1
@Spock 嘿,谢谢你的友好回复 :) 是的,我别无选择,只能等待。我已经在工作中解释了这一点。感谢你提到懒加载,如果它不会使应用程序变慢,我一定会去尝试一下。 - Ap0st0l
2
现在 Angular7 已经进入了 Release Candidate 阶段,我认为我们不会得到一个与 NG7 兼容的生产就绪版本的 IVY。IVY 会变得更好并拥有更多功能,但还没有准备好。我真的认为你应该等待 - 我正在使用我的应用程序做同样的事情。我会升级到 7,但我认为 IVY 是为 NG8 准备的。 - Spock
1
嗨,请注意,Ivy编译器几乎完成了,但是Ivy运行时仍在开发中。可以使用“enableIvy:true”angularCompilerOptions标志启用Ivy。如果您想尝试它,请随时告诉我们。干杯。 - Wassim Chegham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接