Improved webpack config file, and also improved the way env variables are loaded
This commit is contained in:
@@ -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;
|
||||
@@ -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"});
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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
@@ -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
@@ -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' });
|
||||
|
||||
Reference in New Issue
Block a user