我如何将 javascript 配置文件包含到我的 Angular main.bundle.js
How can i include a javascript config file to my Angular main.bundle.js
我已经看到几个 post,但其中 none 完全符合我的要求,所以我不得不再问一次。
我希望有一个名为 "config.js" 的文件,它位于我的项目的根目录中,我将在我的 git 存储库中将其设置为忽略。在这个文件中,我想要做的就是添加一些全局配置变量,这些变量可以在项目的其他任何地方访问。
一位post建议您将文件放入assets文件夹,然后使用HttpClient获取。我试过了,它确实有效,但我遇到的问题是因为这是一个配置文件,在处理任何脚本的一开始就迫切需要它。之所以需要这样做,是因为其中一个全局变量是我将要使用的 api 的 url。
这样做意味着我必须等待 dom 加载,然后等待 ajax 操作完成,然后才能在应用程序中执行任何其他操作。这是不可接受的。
在检查控制台中下载的文件时,我看到一个名为 main.bundle.js 的文件。我不确定所有已编译的打字稿文件最终在哪里,但我猜它就在这里。我想要的是我的 config.js 以某种方式附加到此并在页面加载时加载。这是否有意义,或者是否有 better/recommended 方法来做到这一点?
(注意,Angular 5)
你应该为此使用环境目录。
您为每个环境添加 environment.<envName>.ts
个文件。
默认的 environment.ts
文件应该是本地文件。当涉及到源代码控制提交时忽略它。
为了部署,使用ng build --env=<envName>
为了使用环境,您只需导入它。
import { environment } from '../../environments/environment';
您可以阅读更多内容here。
另一个解决方案是在构建后替换密钥。
您所有的键都应该是字符串。
1. 在你的 environment.ts 中,放入所有键:
{
keys1:"%%mykey1%%",
keys2:"%%mykey2%%"
}
- 您可以像往常一样使用 Angular-CLI 构建您的应用程序
然后你会在你的 dist/main.js.
中找到你的 %%mykey1%%
- 制作一个小脚本,用您想要的密钥替换
%%mykey1%%
。
这样,您的 git 存储库中就不需要 100 个环境文件了。
虽然有点晚..
最初的问题几乎是正确的。
是的,您将配置放在 json 文件中,是的,您使用 httpClient 加载它。
你正在努力如何在正确的时间加载它..
好吧,APP_INITIALIZER 来拯救了。
您可以使用此令牌提供一个服务工厂,它将在 angular 实际开始呈现您的组件之前加载您的配置。
这是一篇关于它的博客post:https://aclottan.wordpress.com/2016/12/30/load-configuration-from-external-file/
我已经看到几个 post,但其中 none 完全符合我的要求,所以我不得不再问一次。
我希望有一个名为 "config.js" 的文件,它位于我的项目的根目录中,我将在我的 git 存储库中将其设置为忽略。在这个文件中,我想要做的就是添加一些全局配置变量,这些变量可以在项目的其他任何地方访问。
一位post建议您将文件放入assets文件夹,然后使用HttpClient获取。我试过了,它确实有效,但我遇到的问题是因为这是一个配置文件,在处理任何脚本的一开始就迫切需要它。之所以需要这样做,是因为其中一个全局变量是我将要使用的 api 的 url。
这样做意味着我必须等待 dom 加载,然后等待 ajax 操作完成,然后才能在应用程序中执行任何其他操作。这是不可接受的。
在检查控制台中下载的文件时,我看到一个名为 main.bundle.js 的文件。我不确定所有已编译的打字稿文件最终在哪里,但我猜它就在这里。我想要的是我的 config.js 以某种方式附加到此并在页面加载时加载。这是否有意义,或者是否有 better/recommended 方法来做到这一点?
(注意,Angular 5)
你应该为此使用环境目录。
您为每个环境添加 environment.<envName>.ts
个文件。
默认的 environment.ts
文件应该是本地文件。当涉及到源代码控制提交时忽略它。
为了部署,使用ng build --env=<envName>
为了使用环境,您只需导入它。
import { environment } from '../../environments/environment';
您可以阅读更多内容here。
另一个解决方案是在构建后替换密钥。 您所有的键都应该是字符串。 1. 在你的 environment.ts 中,放入所有键:
{
keys1:"%%mykey1%%",
keys2:"%%mykey2%%"
}
- 您可以像往常一样使用 Angular-CLI 构建您的应用程序 然后你会在你的 dist/main.js. 中找到你的
- 制作一个小脚本,用您想要的密钥替换
%%mykey1%%
。
%%mykey1%%
这样,您的 git 存储库中就不需要 100 个环境文件了。
虽然有点晚.. 最初的问题几乎是正确的。 是的,您将配置放在 json 文件中,是的,您使用 httpClient 加载它。 你正在努力如何在正确的时间加载它.. 好吧,APP_INITIALIZER 来拯救了。
您可以使用此令牌提供一个服务工厂,它将在 angular 实际开始呈现您的组件之前加载您的配置。
这是一篇关于它的博客post:https://aclottan.wordpress.com/2016/12/30/load-configuration-from-external-file/