一些浏览器,特别是 Google Chrome,出于安全考虑,限制本地加载的文件,以至于 Angular 2使用的某些 HTML 5技术在使用 file: protocol 加载时会产生错误。因此,您需要一个服务器,您可以从中服务您的应用程序,以便所有可用的 HTML 5技术都可以为 Angular 2运行。
对于 file-access-restriction问题,可以将项目作为扩展加载。扩展能够使用所有可用的 HTML 5技术以及一些强大的 api (甚至对服务器上的应用程序也不可用) ,同时在您的开发环境中本地化。因此,如果您将应用程序作为扩展来使用,则不需要启动 Web 服务器来访问 HTML5技术。
对于 hot-module-reload功能,您可以从其他方式接近它。您可以通过应用程序本身来监视本地系统中文件的更改,而不必在 Web 服务器中安装文件监视器。由于应用程序可以使用应用程序所需的 fetch或 xmlhttprequest资源,因此可以定期使用应用程序所需的 fetch或 xmlhttprequest资源,并将其与某些缓存进行比较。但是你怎么知道要检查哪些文件呢?你可以在 img.的 script页面中查找 links如果你使用 SystemJS 作为模块加载器,那么你可以使用它的注册表来查找你的应用程序所需要的文件,但是没有在页面中加载,因为它已经被翻译或者其他什么。尽管这样做会导致系统性能下降,并增加传输或预处理非本机代码的额外开销,但是这项工作可以外包给 web worker,它将为您的应用程序代码释放系统中的主执行线程。
如果你正在使用这个系统,那么你需要一种方法来更新你的开发软件包,因为技术的进步和它的快速发展(当角度2刚刚发布的时候谈论角度3) ,或者你正在使用的技术来开发你的应用程序可能会变得过时,或者沿着线的某个地方 API 的变化可能会阻止你的应用程序在未来的功能。还不能保证为依赖项提供最新的存储库,因为这些类型的包是手动维护的。