Reputation: 11641
I created a Vue application using vue/cli
: vue create my-vue
. I want to build this project in next
mode (like qa
, stage
, next
...), so I followed the steps in the Vue docs. I created the .env.next
file in the root project with this content:
FOO=next
In my main.js
, I log it to the console:
import Vue from 'vue'
import App from './App.vue'
console.log({ f: process.env.FOO }); // <----- undefined. why?
console.log({ f: process.env.VUE_APP_FOO }); // <----- undefined. why?
Vue.config.productionTip = false
new Vue({
render: h => h(App),
}).$mount('#app')
After that, I run the build:
npm run build -- --mode next
When I run the dist folder in the console, I get undefined
. I searched for "next" in the bundle, but it's not there.
Why? How can I use .env
vars in my build output?
Upvotes: 1
Views: 52
Reputation: 138216
As stated in the docs you've linked:
Note that only
NODE_ENV
,BASE_URL
, and variables that start withVUE_APP_
will be statically embedded into the client bundle withwebpack.DefinePlugin
. It is to avoid accidentally exposing a private key on the machine that could have the same name.
For FOO
to be available in the build output, rename it to VUE_APP_FOO
in your .env
file, and update references accordingly:
console.log({ f: process.env.VUE_APP_FOO })
Upvotes: 2