-
-
Notifications
You must be signed in to change notification settings - Fork 6.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exposed env vars are not available #6626
Comments
I'm able to reproduce this, but this doesn't seem to be Vue specific |
You're right, plus issues here are supposed to be framework agnostic. I've removed it from the title, thanks! |
Looks like this line is preventing it: vite/packages/vite/src/node/config.ts Line 1100 in 3ab96c6
But I'm not sure if this was suppose to work in the first place since the comment linked is almost 2 years ago, and it's not documented. |
but use all the process env will trigger unexpected error, may be env set |
This is about explicitly exposed env vars, not all env vars. Only if you write VITE_PORT=$PORT in a |
Yes, it would be great if it did. I'm looking for a way to pass env vars into Vite, and Evan's comment from back then sounded like it should be possible. |
may be VITE_PORT? |
That's what I tried, please look at the reproduction and debug output above. |
may be motdotla/dotenv-expand#55 mentioned this |
I'm currently also struggling with this. I want to pass along a Docker environment variable to a
Is there any solution / workaround? |
@svenjacobs The workaround that I'm currently using is to declare the env var as part of the script that I run to start vite, e. g.: VITE_PORT=$PORT vite |
Thanks, this seems to work for now 😃 |
I'm in the same situation. Just returns an empty string. |
In my case it was an improper Docker / Docker Compose configuration. In my ARG HASURA_GRAPHQL_URL
ENV VITE_HASURA_GRAPHQL_URL $HASURA_GRAPHQL_URL and my services:
my-service:
build:
dockerfile: my-service/Dockerfile
args:
HASURA_GRAPHQL_URL: https://some-url Maybe this helps 🤷🏼♂️ |
Hi, I am experiencing the dotenv variables expanding issue while trying to develop a component for my vue3 app that displays its current version from .env
AppVersion.vue <template>
<span>v. {{ version }}</span>
</template>
<script setup lang="ts">
const version = import.meta.env.VITE_APP_VERSION;
</script> Other solution that worked for me (maybe better in my case) was to use vite's vite.config.ts import { defineConfig, loadEnv } from 'vite'
// https://vitejs.dev/config/
export default defineConfig(({ command, mode }) => {
// src: https://github.com/vitejs/vite/blob/main/packages/vite/src/node/env.ts
// Load env file based on `mode` in the current working directory.
// Set the third parameter to '' to load all env regardless of the `VITE_` prefix.
const env = loadEnv(mode, process.cwd(), '')
return {
// vite config
define: {
__APP_VERSION__: JSON.stringify(env.npm_package_version),
}
}
}) .env.d.ts
AppVersion.vue <template>
<span>v. {{ version }}</span>
</template>
<script setup lang="ts">
/* global __APP_VERSION__ */
const version = __APP_VERSION__;
</script> Hope it helps someone. I am looking forward guys from dotenv-expand to solve the issue: motdotla/dotenv-expand#55 |
Describe the bug
Using an
.env
file to define environment variables, static values are passed on and available in Vue as expected. Exposing existing env vars to Vue, however, does not work and produces empty values.I've exposed the env var using the syntax from this comment.
STR:
PORT=4000 npm run dev
Expected:
PORT
should be available frommain.js
and output4000
.Actual:
PORT
is an empty string.Reproduction
https://stackblitz.com/edit/vitejs-vite-bxj6nd?devtoolsheight=33&file=.env
System Info
Used Package Manager
npm
Logs
Validations
The text was updated successfully, but these errors were encountered: