Edit this page

process.env.NODE_ENV

Setting process.env.NODE_ENV is a widespread convention to tell tools whether your app is being run in development or production.

It's important to respect the following convention: many tools run erroneously otherwise.

In development:

  • Make sure process.env.NODE_ENV is one of these values: ['development', 'dev', '', undefined].
  • If you use a server, make sure to use createDevMiddleware() for adding the development middleware to your server.

In production (and staging):

  • Make sure process.env.NODE_ENV is a value different than ['development', 'dev', '', undefined].

    Note that:

    • Upon starting your server in production, make sure to set process.env.NODE_ENV. (E.g. $ NODE_ENV='production' node server/index.js.)
    • Upon building ($ vike build/$ vike prerender), process.env.NODE_ENV is automatically set to 'production'.
  • Make sure you don't call createDevMiddleware() in production: the development middleware isn't needed in production. (It would unnecessarily bloat your production server.)
  • Make sure you don't mistakenly load Vite in production. (It would significantly bloat your production server.)

See also