J'ai essayé toutes les solutions, mais aucune ne semble fonctionner pour moi. Je veux juste stocker quelques valeurs dans un fichier .env
Dans mon application Vue mais en essayant simplement de journaliser process.env
Renvoie un objet vide depuis le composant.
Mon fichier .env
VUE_APP_URL={api url}
VUE_APP_TOKEN={token}
Mon plan était de définir ces variables d'environnement sur les propriétés des données, mais il renvoie toujours undefined
. Si je fais console.log(process.env.NODE_ENV)
à partir de webpack.config.js cela montrera que je suis en développement mais si j'ai essayé de faire la même chose depuis le composant comme
mounted() {
this.$nextTick(() => {
console.log(process.env.VUE_APP_URL);
})
}
Il renvoie simplement undefined
.
Je l'ai compris - j'ai dû installer dotenv-webpack
et l'initialiser dans webpack.config.js, ce qui est étrange car aucun document n'a indiqué que je devais le faire.
Quelques conseils pour les personnes qui atterrissent ici:
.env
les fichiers sont dans le dossier racine du projet (et pas disons src/
)VUE_APP_
si elle doit être intégrée statiquement dans le bundle clientSi votre vue-cli version est supérieur à 3.x et vous mettez vos fichiers .env dans le répertoire racine comme dit dans les commentaires. Vous pouvez ensuite accéder à vos variables d'environnement à partir de composants (comme ceci process.env.VUE_APP_YOUR_VARIABLE
). Comme dit dans vue-cli docs
Seules les variables commençant par
VUE_APP_
Seront intégrées statiquement dans le bundle client avecwebpack.DefinePlugin
. Vous pouvez y accéder dans votre code d'application:console.log(process.env.VUE_APP_SECRET)
donc j'utilise VUE_APP_API_URL (cela ne fonctionne pas) puis je le change en VUE_APP_APIURL (cela fonctionne)
j'espère que ça aide