UNPKG

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