Sometimes you want configuration values that are different from what you have in the production build. Gridsome utilizes the dotenv package to make this easy. Create a file called .env
at the root of your project.
If you want different variables for your local development, then create a file named .env.development
. Similarly, you can create a file with the name .env.production
to have variables only for the production build. Although production variables are usually added by the hosting providers. The default .env
file will only be loaded if no dotenv
file exists for the current environment.
GRIDSOME_API_URL=https://api.example.com
DB_USER=root
DB_PASS=s1mpl3
All variables will be available as process.env.{name}
on the server.
module.exports = {
plugins: [
{
use: '@gridsome/source-plugin',
options: {
username: process.env.DB_USER,
password: process.env.DB_PASS
}
}
]
}
While all the variables are available on the server, only variables prefixed with GRIDSOME_
are available in the browser for security reasons. As you see in the example above, only GRIDSOME_API_URL
is prefixed. That is because we don't want to have DB_USER
and DB_PASS
compiled into our JavaScript.
export default {
data () {
return {
items: []
}
},
async mounted () {
const res = await axios.get(process.env.GRIDSOME_API_URL)
this.items = res.data
}
}