使用Angular 2

时间:2017-01-11 13:52:05

标签: angular typescript

我可以或不可以将Angular 2与AOT一起用于此项目吗?重要的是它是AOT,它不能是JIT。

我构建了一个包含许多不同组件的应用程序,在运行时我将获得应该显示哪些组件的规范。有时会显示1个组件,有时最多30个。

我想将这些组件放在不同的文件中。不仅仅是一个不同的.ts文件,我希望将这些组件放在不同的.js文件中并将它们存储在服务器上,并在必要时获取它们。

有三个原因:

  1. 如果只更新了一个组件,用户不必更新应用程序。

  2. 如果在一个组件上进行更新,我不希望应用程序中的任何其他内容因此而中断。 (是的,它确实如此)。如果构建了新的应用程序,我们必须重新测试整个应用程序,而不仅仅是那个组件。

  3. 如果只需要一个组件,则无需加载全部30.
  4. 所以我一直在谷歌/这里堆栈溢出并搜索这个并尝试了不同的解决方案,但似乎没有人有这个问题。我发现的所有示例都已在app中有组件,并且已在NgModule中声明。但是在我从服务器获取文件之前,我的组件不存在。

1 个答案:

答案 0 :(得分:0)

我没有面对这样的挑战,但这些都是我的想法。

  1. 如果使用路由器呈现这30个组件中的每一个,请将它们中的每一个放在单独的功能模块中,并创建路由器配置以便懒惰地加载每个模块。如果你的项目是基于Angular CLI的,它将为每个延迟加载的组件构建一个单独的包,无论你是否使用AoT。然后,您应该能够在不触及其他服务器的情况下替换prod服务器中的任何这些软件包。
  2. 如果您不使用Angular CLI,则需要手动配置Webpack构建,以便为这30个组件中的每个组件创建单独的软件包。

    1. 如果您没有使用路由器加载这些组件,请考虑使用APP_INITIALIZER,如此处接受的答案中所述:Angularjs2 - preload server configuration before the application starts