1 | const { existsSync, realpathSync } = require("fs");
|
2 | const { delimiter, isAbsolute, resolve } = require("path");
|
3 | const { dotenv } = require("./paths");
|
4 |
|
5 | delete require.cache[require.resolve("./paths")];
|
6 |
|
7 | const NODE_ENV = process.env.NODE_ENV;
|
8 | if (!NODE_ENV) {
|
9 | throw new Error("The NODE_ENV environment variable is required but was not specified.");
|
10 | }
|
11 |
|
12 | const dotenvFiles = [
|
13 | `${dotenv}.${NODE_ENV}.local`,
|
14 | `${dotenv}.${NODE_ENV}`,
|
15 | NODE_ENV !== "test" && `${dotenv}.local`,
|
16 | dotenv
|
17 | ].filter(Boolean);
|
18 |
|
19 | dotenvFiles.forEach(dotenvFile => {
|
20 | if (existsSync(dotenvFile)) {
|
21 | require("dotenv-expand")(
|
22 | require("dotenv").config({
|
23 | path: dotenvFile
|
24 | })
|
25 | );
|
26 | }
|
27 | });
|
28 |
|
29 | const appDirectory = realpathSync(process.cwd());
|
30 | process.env.NODE_PATH = (process.env.NODE_PATH || "")
|
31 | .split(delimiter)
|
32 | .filter(folder => folder && !isAbsolute(folder))
|
33 | .map(folder => resolve(appDirectory, folder))
|
34 | .join(delimiter);
|