From e0b1ff1353f7b43baafa354213cc0719c3da2ab1 Mon Sep 17 00:00:00 2001 From: proddy Date: Sun, 9 May 2021 13:52:46 +0200 Subject: [PATCH] add hosted ems-esp.derbyshire.nl --- interface/.env.hosted | 3 + interface/config-overrides.js | 9 +-- interface/package-lock.json | 117 ++++++++++++++++++++++++++++++++++ interface/package.json | 2 + 4 files changed, 127 insertions(+), 4 deletions(-) create mode 100644 interface/.env.hosted diff --git a/interface/.env.hosted b/interface/.env.hosted new file mode 100644 index 000000000..bb892d82d --- /dev/null +++ b/interface/.env.hosted @@ -0,0 +1,3 @@ +GENERATE_SOURCEMAP=false + +REACT_APP_HOSTED=true diff --git a/interface/config-overrides.js b/interface/config-overrides.js index b7e194599..562a63dbd 100644 --- a/interface/config-overrides.js +++ b/interface/config-overrides.js @@ -4,11 +4,12 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin') const CompressionPlugin = require('compression-webpack-plugin') const ProgmemGenerator = require('./progmem-generator.js') -const path = require('path') -const fs = require('fs') - module.exports = function override(config, env) { - if (env === 'production') { + const hosted = process.env.REACT_APP_HOSTED + + if (env === 'production' && !hosted) { + console.log('Custom webpack...') + // rename the output file, we need it's path to be short for LittleFS config.output.filename = 'js/[id].[chunkhash:4].js' config.output.chunkFilename = 'js/[id].[chunkhash:4].js' diff --git a/interface/package-lock.json b/interface/package-lock.json index d711eecde..117ab8d21 100644 --- a/interface/package-lock.json +++ b/interface/package-lock.json @@ -18,6 +18,7 @@ "@types/react-router": "^5.1.13", "@types/react-router-dom": "^5.1.7", "compression-webpack-plugin": "^5.0.2", + "env-cmd": "^10.1.0", "express": "^4.17.1", "jwt-decode": "^3.1.2", "lodash": "^4.17.21", @@ -6972,6 +6973,75 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" }, + "node_modules/env-cmd": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz", + "integrity": "sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==", + "dependencies": { + "commander": "^4.0.0", + "cross-spawn": "^7.0.0" + }, + "bin": { + "env-cmd": "bin/env-cmd.js" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/env-cmd/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/env-cmd/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/env-cmd/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/env-cmd/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/env-cmd/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", @@ -27478,6 +27548,53 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" }, + "env-cmd": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz", + "integrity": "sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==", + "requires": { + "commander": "^4.0.0", + "cross-spawn": "^7.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", diff --git a/interface/package.json b/interface/package.json index 256e59f95..3743c0bf5 100644 --- a/interface/package.json +++ b/interface/package.json @@ -13,6 +13,7 @@ "@types/react-router": "^5.1.13", "@types/react-router-dom": "^5.1.7", "compression-webpack-plugin": "^5.0.2", + "env-cmd": "^10.1.0", "express": "^4.17.1", "jwt-decode": "^3.1.2", "lodash": "^4.17.21", @@ -35,6 +36,7 @@ "start": "react-app-rewired start", "build": "react-app-rewired build", "format": "prettier --write '**/*.{ts,js,css,json,md}'", + "build-hosted": "env-cmd -f .env.hosted npm run build", "build-localhost": "PUBLIC_URL=/ react-app-rewired build", "mock-api": "nodemon --watch ../mock-api ../mock-api/server.js" },