Angular cli 忽略文件以进行缩小

标签 angular angular-cli

当我创建生产版本时,客户端会缩小所有文件。

我希望客户端排除可以放置端点变量的特定文件。

谢谢。

最佳答案

解决方案是将此文件移出 angular-cli 管道。将其重命名为 settings.js 并将其放入您的 Assets 文件夹中。

在此文件中,将端点公开为 DOM 窗口全局上的属性:window.ENDPOINT = '/some/end/point'

将此文件添加到 angular-cli.json 中的脚本数组中

在您的应用程序中从 window.ENDPOINT 引入端点

请考虑这对安全的影响。如果任何攻击者可以将脚本注入(inject)您的应用程序,他们将能够更改端点。

更新

另一种选择是将它们添加到 Assets 目录中的 json 文件中。

示例:assets/settings.json

{
  "endpoint": "http://someUrl"
}

当您的应用程序启动时,发出对 /assets/settings.json 的请求,然后设置应用程序 API 端点。

或者,您可以允许您的客户端在更新端点后从源代码构建 ng build --prod

第四个选项是:如果您的客户端具有静态数量的端点(dev、qa、uat、prod),您可以将它们存储在环境文件中,并为每个环境自动构建(并交付构建)。

关于Angular cli 忽略文件以进行缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41449263/

相关文章:

javascript - ngFor 中的数据绑定(bind)函数参数

angular - 如何在 Angular 6中实现内容显示更多和显示更少

node.js - Angular cli 安装产生 ssh 错误

node.js - 创建新的 Angular 7 项目时出现问题

nginx - 配置 angular-cli nginx 子目录/示例

javascript - Angular 2 - ES6 - 根据复选框值触发表单验证器

Angular Material 2 数据表连接到 AngularFire2 或 Firebase 服务?

javascript - 任何人都可以帮助我理解运行 ngserve (Angular 8) 时 cmd 中的这条消息吗?

unit-testing - 如何从 Angular -cli 4 单元测试中的输入模拟按键事件

linux - ngserve 无法在 Ubuntu 上启动 Anguiar