From 9f9808dfd0de78825dabf137f3d9ffab9033bf5b Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Sat, 18 Jul 2020 09:47:37 +0200 Subject: [PATCH] Make sure dot env is loaded by core app config and as first require when used Signed-off-by: Alexandre Bodin --- packages/strapi/lib/Strapi.js | 8 ++------ packages/strapi/lib/commands/build.js | 5 ++++- packages/strapi/lib/commands/develop.js | 4 +++- packages/strapi/lib/commands/watchAdmin.js | 6 +++++- packages/strapi/lib/core/app-configuration/index.js | 3 +++ 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/packages/strapi/lib/Strapi.js b/packages/strapi/lib/Strapi.js index 16be314807..36cd4c87ae 100644 --- a/packages/strapi/lib/Strapi.js +++ b/packages/strapi/lib/Strapi.js @@ -1,9 +1,7 @@ 'use strict'; -// Dependencies. -const dotenv = require('dotenv'); - -dotenv.config({ path: process.env.ENV_PATH }); +// required first because it loads env files. +const loadConfiguration = require('./core/app-configuration'); const http = require('http'); const path = require('path'); @@ -18,7 +16,6 @@ const { createDatabaseManager } = require('strapi-database'); const utils = require('./utils'); const loadModules = require('./core/load-modules'); -const loadConfiguration = require('./core/app-configuration'); const bootstrap = require('./core/bootstrap'); const initializeMiddlewares = require('./middlewares'); const initializeHooks = require('./hooks'); @@ -36,7 +33,6 @@ const createTelemetry = require('./services/metrics'); * * @constructor */ - class Strapi { constructor(opts = {}) { this.reload = this.reload(); diff --git a/packages/strapi/lib/commands/build.js b/packages/strapi/lib/commands/build.js index 8a36a6e187..eddc455d54 100644 --- a/packages/strapi/lib/commands/build.js +++ b/packages/strapi/lib/commands/build.js @@ -1,11 +1,14 @@ 'use strict'; +// required first because it loads env files. +const loadConfiguration = require('../core/app-configuration'); + const { green } = require('chalk'); + // eslint-disable-next-line node/no-extraneous-require const strapiAdmin = require('strapi-admin'); const { getConfigUrls } = require('strapi-utils'); -const loadConfiguration = require('../core/app-configuration'); const addSlash = require('../utils/addSlash'); /** * `$ strapi build` diff --git a/packages/strapi/lib/commands/develop.js b/packages/strapi/lib/commands/develop.js index f38d7cafe7..9af5013fa8 100644 --- a/packages/strapi/lib/commands/develop.js +++ b/packages/strapi/lib/commands/develop.js @@ -1,5 +1,8 @@ 'use strict'; +// required first because it loads env files. +const loadConfiguration = require('../core/app-configuration'); + const path = require('path'); const cluster = require('cluster'); const fs = require('fs-extra'); @@ -7,7 +10,6 @@ const chokidar = require('chokidar'); const execa = require('execa'); const { logger } = require('strapi-utils'); -const loadConfiguration = require('../core/app-configuration'); const strapi = require('../index'); /** diff --git a/packages/strapi/lib/commands/watchAdmin.js b/packages/strapi/lib/commands/watchAdmin.js index c583793581..6c0e01571a 100644 --- a/packages/strapi/lib/commands/watchAdmin.js +++ b/packages/strapi/lib/commands/watchAdmin.js @@ -1,8 +1,12 @@ +'use strict'; + +// required first because it loads env files. +const loadConfiguration = require('../core/app-configuration'); + // eslint-disable-next-line node/no-extraneous-require const strapiAdmin = require('strapi-admin'); const { getConfigUrls, getAbsoluteServerUrl } = require('strapi-utils'); -const loadConfiguration = require('../core/app-configuration'); const addSlash = require('../utils/addSlash'); module.exports = async function() { diff --git a/packages/strapi/lib/core/app-configuration/index.js b/packages/strapi/lib/core/app-configuration/index.js index 56ab65204c..6a18a46bd0 100644 --- a/packages/strapi/lib/core/app-configuration/index.js +++ b/packages/strapi/lib/core/app-configuration/index.js @@ -1,5 +1,8 @@ 'use strict'; +const dotenv = require('dotenv'); +dotenv.config({ path: process.env.ENV_PATH }); + process.env.NODE_ENV = process.env.NODE_ENV || 'development'; const os = require('os');