Improved webpack config file, and also improved the way env variables are loaded

This commit is contained in:
subnub
2020-05-08 16:41:58 -04:00
parent c5633d68fa
commit 63ed58b990
7 changed files with 60 additions and 37 deletions
Vendored
BIN
View File
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
import path from "path";
const getEnvVariables = () => {
const configPath = path.join(__dirname, "..", "..", "config");
const processType = process.env.NODE_ENV;
if (processType === 'production') {
require('dotenv').config({ path: configPath + "/prod.env"})
} else if (processType === 'development') {
require('dotenv').config({ path: configPath + "/dev.env"})
} else if (processType === 'test') {
require('dotenv').config({ path: configPath + "/test.env"})
}
}
export default getEnvVariables;
+1 -1
View File
@@ -9,7 +9,7 @@ const getKey = async() => {
env.key = process.env.KEY
} else if (process.env.NODE_ENV) {
} else if (process.env.NODE_ENV === "production") {
let password: string = await prompt("Enter Server Encryption Password: ", {method: "hide"});
+3 -1
View File
@@ -12,13 +12,15 @@ import busboy from "connect-busboy";
import compression from "compression";
import http from "http";
const app = express();
const publicPath = path.join(__dirname, "..", "..", "public");
let server: any;
let serverHttps: any;
if (process.env.NODE_ENV === 'production') {
if (process.env.SSL === 'true') {
const cert = fs.readFileSync("certificate.crt")
const ca = fs.readFileSync("certificate.ca-bundle");
+6 -2
View File
@@ -1,3 +1,5 @@
import getEnvVariables from "../enviroment/getEnvVariables";
getEnvVariables();
import getKey from "../key/getKey";
import servers from "./server";
@@ -7,7 +9,9 @@ const serverStart = async() => {
await getKey();
if (process.env.NODE_ENV === 'production') {
console.log("ENV", process.env.NODE_ENV);
if (process.env.NODE_ENV === 'production' && process.env.SSL === "true") {
server.listen(process.env.HTTP_PORT,process.env.URL, () => {
console.log("Http Server Running On Port:", process.env.HTTP_PORT);
@@ -17,7 +21,7 @@ const serverStart = async() => {
console.log( 'Https Server Running On Port:', process.env.HTTPS_PORT);
} );
} else if (process.env.NODE_ENV === 'production-no-ssl') {
} else if (process.env.NODE_ENV === 'production') {
server.listen(process.env.HTTP_PORT,process.env.URL, () => {
console.log("Http Server (No-SSL) Running On Port:", process.env.HTTP_PORT);
+5 -19
View File
@@ -5,26 +5,12 @@
"license": "GNU General Public License v3.0",
"scripts": {
"server": "live-server public/",
"build": "cross-env NODE_ENV=production webpack -p --env production",
"build:no-ssl": "cross-env NODE_ENV=production-no-ssl webpack -p --env production-no-ssl",
"build:dev": "webpack",
"build": "webpack -p --env production",
"build:dev": "webpack --env development",
"dev-server": "webpack-dev-server",
"test": "cross-env NODE_ENV=test env-cmd -f ./config/test.env jest --config=jest.config.json --watchAll --runInBand",
"start:dev": "env-cmd -f ./config/dev.env node server/serverStart.js",
"start": "cross-env NODE_ENV=production env-cmd -f ./config/prod.env node server/serverStart.js --env production",
"start:no-ssl": "cross-env NODE_ENV=production-no-ssl env-cmd -f ./config/prod.env node dist/server/serverStart.js --env production-no-ssl",
"clean-database": "env-cmd -f ./config/prod.env node serverUtils/cleanDatabase.js",
"clean-database:dev": "env-cmd -f ./config/dev.env node serverUtils/cleanDatabase.js",
"backup-database": "env-cmd -f ./config/prod.env node serverUtils/backupDatabase.js",
"backup-database:dev": "env-cmd -f ./config/dev.env node serverUtils/backupDatabase.js",
"restore-database": "env-cmd -f ./config/prod.env node serverUtils/restoreDatabase.js",
"restore-database:dev": "env-cmd -f ./config/dev.env node serverUtils/restoreDatabase.js",
"delete-temp-database": "env-cmd -f ./config/prod.env node serverUtils/deleteTempDatabase.js",
"delete-temp-database:dev": "env-cmd -f ./config/dev.env node serverUtils/deleteTempDatabase.js",
"delete-database": "env-cmd -f ./config/prod.env node serverUtils/deleteDatabase.js",
"delete-database:dev": "env-cmd -f ./config/dev.env node serverUtils/deleteDatabase.js",
"change-password-database": "env-cmd -f ./config/prod.env node serverUtils/changeEncryptionPassword.js",
"change-password-database:dev": "env-cmd -f ./config/dev.env node serverUtils/changeEncryptionPassword.js",
"test": "NODE_ENV=test env-cmd -f ./config/test.env jest --config=jest.config.json --watchAll --runInBand",
"start:dev": "NODE_ENV=development node dist/server/serverStart.js",
"start": "NODE_ENV=production node dist/server/serverStart.js --env production",
"create-indexes-database": "env-cmd -f ./config/prod.env node serverUtils/createIndexes.js",
"create-indexes-database:dev": "env-cmd -f ./config/dev.env node serverUtils/createIndexes.js",
"init": "node serverUtils/initServer.js",
+22 -14
View File
@@ -6,25 +6,33 @@ const CompressionPlugin = require("compression-webpack-plugin");
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const path = require("path");
process.env.NODE_ENV = process.env.NODE_ENV || "development"
//console.log("node env", process.env.NODE_ENV);
console.log("node env", process.env.NODE_ENV);
//process.env.NODE_ENV = process.env.NODE_ENV || "development"
if (process.env.NODE_ENV === "test") {
require("dotenv").config({path: ".env.test"})
} else if (process.env.NODE_ENV === "development") {
require("dotenv").config({path: ".env.development"})
} else {
require("dotenv").config({path: ".env.production"});
}
//console.log("node env", process.env.NODE_ENV);
module.exports = (env) => {
const isProduction = (env === "production" || env === "production-no-ssl")
if (env === "test") {
console.log("Loading test env variables")
require("dotenv").config({path: ".env.test"})
} else if (env === "development") {
console.log("Loading development env variables")
require("dotenv").config({path: ".env.development"})
} else {
console.log("Loading production env variables")
require("dotenv").config({path: ".env.production"});
}
console.log("env", env);
const isProduction = env === "production"
console.log("is prod", isProduction);
const CSSExtract = new MiniCssExtractPlugin({ filename: 'styles.css' });