有什么理由不提前使用编译?

时间:2017-10-10 17:39:24

标签: javascript angular typescript angular-cli angular2-aot

Since I know now, what "angular compiler" actually means, this would be my next question.

关于提前编译的正面和负面点,我读了here。对我来说,归结为:

  • 使用AOT进行部署
  • 使用JIT进行开发

JIT的唯一正当理由(imho)是运行速度更快(这对于开发过程来说很好)。还有其他原因吗?

AOT比JIT有很多巨大的优势,我想知道为什么JIT甚至可以作为部署的选择。

1 个答案:

答案 0 :(得分:0)

嗯,有很多不同之处,其中一些很好地指出了你。它还取决于您所处的环境和您的要求。

我一直在使用角度angular-2.beta.17当角度cli不存在时我们必须借助许多构建系统和运行环境来在任何地方运行项目。

Systemjs构建并运行:

在多个项目和框架一起运行的某些情况下,您无法进行AOT构建并将代码引导到SPA中并运行。在系统js environement中,你必须逐个加载脚本并引导它。

你必须在许多在线工具中看到过这种构建和加载脚本,比如codepen,plunker等。我认为它们都使用systemjs加载

还有许多其他类似commonjs加载器,babel构建系统,webpack构建系统。但现在angular cli是一个防弹工具,内部使用网络包和琥珀色cli来处理你想要的一切。

提前编译和JIT调试

正如名称所示AOT做一个树摇动并包含你的代码中真正使用的所有内容并丢弃未使用的代码并压缩可以非常快速加载的代码大小。但通过这样做,它失去了调试控制,如果在生产中你想看到什么是错的话,不会给你一个很好的错误信息。

同时JIT可以指向typescript文件中有错误的行号,并通过angular cli在dev模式下运行时让你的生活变得非常容易调试。

你可以在角度编译器中获得更多,并且还有许多工具和游戏可用。

我最喜欢的一个是ngrev