Je crée une interface utilisateur simple avec une configuration HTML + CSS + JS qui utilise une API tierce nécessitant une clé et je voudrais conserver la clé dans un fichier que je peux gitignore
et accéder à partir de mon Fichier Javascript. Je ne vais pas déployer ce projet, je veux juste pouvoir le pousser vers GitHub sans supprimer temporairement la variable avant chaque commit.
Toutes les réponses que j'ai trouvées sont liées aux configurations avec Node.js, React/Webpack ou d'autres configurations de serveur, mais je n'ai pas de serveur ou de transpilateur et je ne veux pas ajouter un tas de configurations et de configurations juste pour cela . Y-a-t-il un moyen de faire ça? J'ai essayé de le stocker dans un fichier JS séparé et d'importer/exporter, mais soit je ne pouvais pas obtenir la bonne syntaxe, soit ce que j'essayais avait besoin d'un transpilateur. Chaque variation de tentative a entraîné une erreur de syntaxe ou une variable non définie.
Informations clés:
index.html
dans mon navigateur - donc je ne pense pas avoir à me soucier de la clé exposée dans le client.index.html
, main.js
, et style.css
.main.js
que je peux ajouter à .gitignore
mais accès dans main.js
.Votre meilleur pari est d'extraire tous les secrets dont vous avez besoin de l'environnement lui-même, que ce soit vos variables d'environnement ou un magasin de secrets.
L'implémentation spécifique dépendra du fournisseur sans serveur que vous utilisez, mais par exemple AWS Lambda vous permet de configurer les vars env:
https://docs.aws.Amazon.com/lambda/latest/dg/env_variables.html
et vous pouvez utiliser le service de gestion des clés ou le magasin de paramètres en fonction de vos préférences et de vos besoins:
https://aws.Amazon.com/blogs/mt/the-right-way-to-store-secrets-using-parameter-store/
Laissant ce qui précède en place au cas où les gens le trouveraient en regardant la balise Serverless. Mises à jour ci-dessous basées sur la question mise à jour.
Donc, si je comprends bien la question mise à jour, vous voulez archiver tout votre code pour git, sauf la clé API, servir les fichiers uniquement sur votre système de fichiers local et permettre à cette copie locale d'accéder à la clé API.
La façon la plus simple de le faire serait d'avoir juste un autre fichier .js qui définit la ou les variables en question comme ceci:
// config.js
var config = { // this should be const instead if you're using ES6 standards
apiKey : '123456789XYZ'
}
Ensuite, dans index.html, ayez une autre balise de script qui appelle cela avant tous les scripts qui ont besoin de la configuration, par exemple:
<script src='./config.js'></script>
<script src='./main.js'></script>
</body>
Dans main.js, vous pourrez alors référencer la variable config
pour l'utiliser, et de la même manière vous pouvez .gitignore 'config.js'.