【发布时间】:2018-03-01 14:12:49
【问题描述】:
用例
我需要在 Angular 应用程序中向使用不受支持的浏览器的用户显示消息。该项目是一个 Angular CLI 项目。该应用程序是一个内部企业应用程序,我们只需要支持 Chrome 就被宠坏了。我们不想启用各种polyfills 来支持 IE,因为我们不会花费资源在 IE 中测试应用程序。但是,当用户使用不受支持的浏览器时,我们确实需要通知用户。
分析
当用户使用不受支持的浏览器时,由 CLI 生成的任何 JavaScript 包(inline、polyfills 和位于 body 底部的 mainindex.html)可能会因取决于这些浏览器不支持的功能。这意味着“浏览器检查”代码需要在任何这些包之前运行。
在查看index.html of angular.io 以获取灵感时,我注意到他们在head 中有内联scripts 用于Google Analytics 之类的东西。我可以肯定地遵循相同的方法并在index.html 中内联添加我的“浏览器检查”代码。该解决方案满足在任何 Angular 应用程序包之前执行的要求。
当在index.html 中添加内联脚本时,我们都污染了index.html 源文件,而且我们也没有获得 CLI 开箱即用的 TypeScript、linting、测试、缩小等的好处应用程序。
问题
是否可以利用 CLI 并让它从 TypeScript 构建一个单独的包(并对其进行 lint、测试和缩小)并将其包含在 index.html 中,然后再包含任何其他脚本包?
Here 是我第一次尝试使用包含 JavaScript 源文件而无需 CLI 处理的简单方法。
【问题讨论】:
-
在您的 app.component 中检测浏览器并重定向到错误页面 stackoverflow.com/questions/9847580/…
-
在 app.component 中添加浏览器检查代码不起作用,因为 app.component 永远不会在不受支持的浏览器中运行。我已经编辑了我的问题以澄清我的问题。
标签: angular angular-cli