J'utilise angular6, dans mon projet j'utilise Facebook Account Toolkit à des fins de vérification mobile.
J'ai besoin d'initialiser la boîte à outils du compte dans le fichier index.html à l'aide du code suivant.
AccountKit.init({
appId:"XX",
state:"xx",
version:"v1.2",
fbAppEventsEnabled:true,
debug:true
});
Le problème est que les valeurs de appId et state changent en fonction de l'environnement (développement/test/production).
Comment puis-je utiliser des variables d'environnement dans index.html
fichier.
Veuillez me faire savoir si quelqu'un a une solution pour angular 6.
Merci d'avance.
Vous devez créer une copie de index.html et le nommer index.someenv.html
. Ensuite, dans votre angular.json dans le remplacement du fichier d'installation de configuration de l'environnement:
"fileReplacements": [
{
"replace": "src/index.html",
"with": "src/index.someenv.html"
}
]
Le angular cli remplacera ces fichiers lorsque vous exécuterez votre build
Dans le fichier main.ts, vous pouvez utiliser document.write(environment.variable)
et il écrira ce que vous voulez dans index.html
(Je l'utilise pour que le script Google Analytics prenne un ID de suivi dynamique qu'il soit en mode de développement ou de production, et cela fonctionne bien dans Angular6)
Un exemple ici pour document.write (environment.variable): https://github.com/angular/angular-cli/issues/4451#issuecomment-28502654
import { environment } from './environments/environment';
if (environment.production) {
document.write('<script type="text/javascript">// ProductionAnalyticsCodeHere</script>');
} else if (environment.staging) {
document.write('<script type="text/javascript">// StagingAnalyticsCodeHere</script>');
}
Je pense que vous pouvez tout faire dans main.ts
const env = environment;
AccountKit.init({
appId:env.appId, // this lane
state:env.state, // this lane
version:"v1.2",
fbAppEventsEnabled:true,
debug:true
});
Merci.
J'ai ajouté ceci dans main.ts:
var html = document.documentElement.innerHTML
document.documentElement.innerHTML = html.replace("Replace me!", environment.variable)
Notez que l'ancienne valeur existera toujours dans index.html pendant un certain temps pendant le chargement initial de la page. (Par exemple, utilisez-le pour remplacer le titre de la page et vous verrez l'ancienne valeur affichée avant le remplacement.)