Hey!
I'm currently trying to set several config parameters depending on whether nuxt.js is launched in dev or production mode. To accomplish this, I haven't changed any environment variables before starting nuxt. Unfortunately, the following won't work (using the axios module) by default:
/*
* Axios
*/
axios: {
baseURL: process.env.NODE_ENV !== 'production' ? 'http://api.xyz.test' : 'https://api.xyz.com'
},
If I use console.log(process.env.NODE_ENV)
in the nuxt.config.js
file, it's undefined (if not set before)
I only came up with one solution for it:
We could update the package.json scripts to include NODE_ENV or set it manually through the console. The former blocks "overriding" ENV through the command line, the latter is quite tedious.
"scripts": {
"dev": "NODE_ENV=development nuxt",
"build": "NODE_ENV=production nuxt build",
"start": "NODE_ENV=production nuxt start",
"generate": "NODE_ENV=production nuxt generate",
},
Also a way to deal with it, and highly customizable. Still, there should be an easier way to define the "default" configuration which would be enough in many use-cases.
Are there better ways to accomplish similar behavior easier?
By default, NODE_ENV is set depending on the nuxt mode (nuxt dev
= development, production otherwise), but I guess this happens after interpreting the config.
Could we use extend()
for it? :thinking:
https://github.com/nuxt/nuxt.js/blob/dev/lib/builder/webpack/server.config.js#L50 https://github.com/nuxt/nuxt.js/issues/1386
<!--cmty--><!--cmty_prevent_hook--><div align="right"><sub><em>This bug report is available on <a href="https://nuxtjs.cmty.io">Nuxt.js</a> community (<a href="https://nuxtjs.cmty.io/nuxt/nuxt.js/issues/c2598">#c2598</a>)</em></sub></div>