私はそこにあるすべての解決策を試しましたが、どれもうまくいかないようです。 Vueアプリ内の_.env
_ファイルにいくつかの値を格納したいだけですが、_process.env
_をログに記録しようとすると、コンポーネント内から空のオブジェクトが返されます。
私の_.env
_ファイル
_VUE_APP_URL={api url}
VUE_APP_TOKEN={token}
_
私の計画は、これらの環境変数をデータプロパティに設定することでしたが、常にundefined
を返します。 webpack.config.jsからconsole.log(process.env.NODE_ENV)
を実行すると、開発中であることが示されますが、コンポーネント内から同じように実行しようとした場合
_mounted() {
this.$nextTick(() => {
console.log(process.env.VUE_APP_URL);
})
}
_
undefined
を返すだけです。
私はそれを理解しました-私はインストールする必要がありましたdotenv-webpack
とwebpack.config.jsで初期化します。これは、私がそうする必要があるとドキュメントで説明されていないためです。
ここに着陸する人々のためのいくつかのヒント:
.env
ファイルがプロジェクトのルートフォルダであることを確認してください(たとえば、src/
ではありません)VUE_APP_
クライアントバンドルに静的に埋め込む場合あなたのvue-cliversionがよりも高い場合3。 xそして、コメントで言ったように、.envファイルをルートディレクトリに置きます。コンポーネント(この_process.env.VUE_APP_YOUR_VARIABLE
_など)から環境変数にアクセスできます。 vue-cli docs で述べたように
_
VUE_APP_
_で始まる変数のみが、_webpack.DefinePlugin
_でクライアントバンドルに静的に埋め込まれます。あなたはあなたのアプリケーションコードでそれらにアクセスすることができます:console.log(process.env.VUE_APP_SECRET)
vUE_APP_API_URL(これは機能しません)を使用してから、VUE_APP_APIURL(これは機能します)に変更します
それが役に立てば幸い