feat(vite): add HTTPS support with configurable SSL (#8585)
The Pull Request adds support for local HTTPS configuration and introduces a new environment variable for the app's base URL. - Added new environment variable REACT_APP_BASE_URL in .env.example. - Introduced logic to utilize SSL certificates for local HTTPS in vite.config.ts. - Added validation to ensure SSL key and certificate paths are defined for HTTPS. - Included support for dynamic base URL setting based on the environment configuration. - Enhanced server configuration in vite.config.ts to handle HTTPS and local development. --------- Co-authored-by: Félix Malfait <felix@twenty.com>
This commit is contained in:
@ -5,4 +5,7 @@ GENERATE_SOURCEMAP=false
|
||||
# REACT_APP_PORT=3001
|
||||
# CHROMATIC_PROJECT_TOKEN=
|
||||
# VITE_DISABLE_TYPESCRIPT_CHECKER=true
|
||||
# VITE_DISABLE_ESLINT_CHECKER=true
|
||||
# VITE_DISABLE_ESLINT_CHECKER=true
|
||||
# VITE_ENABLE_SSL=false
|
||||
# SSL_KEY_PATH="./certs/your-cert.key"
|
||||
# SSL_CERT_PATH="./certs/your-cert.crt"
|
||||
@ -3,6 +3,7 @@ import { isNonEmptyString } from '@sniptt/guards';
|
||||
import react from '@vitejs/plugin-react-swc';
|
||||
import wyw from '@wyw-in-js/vite';
|
||||
import path from 'path';
|
||||
import fs from 'fs';
|
||||
import { defineConfig, loadEnv, searchForWorkspaceRoot } from 'vite';
|
||||
import checker from 'vite-plugin-checker';
|
||||
import svgr from 'vite-plugin-svgr';
|
||||
@ -18,6 +19,7 @@ export default defineConfig(({ command, mode }) => {
|
||||
VITE_BUILD_SOURCEMAP,
|
||||
VITE_DISABLE_TYPESCRIPT_CHECKER,
|
||||
VITE_DISABLE_ESLINT_CHECKER,
|
||||
VITE_ENABLE_SSL,
|
||||
REACT_APP_PORT,
|
||||
} = env;
|
||||
|
||||
@ -62,13 +64,27 @@ export default defineConfig(({ command, mode }) => {
|
||||
};
|
||||
}
|
||||
|
||||
if (VITE_ENABLE_SSL && (!env.SSL_KEY_PATH || !env.SSL_CERT_PATH)) {
|
||||
throw new Error(
|
||||
'to use https SSL_KEY_PATH and SSL_CERT_PATH must be both defined',
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
root: __dirname,
|
||||
cacheDir: '../../node_modules/.vite/packages/twenty-front',
|
||||
|
||||
server: {
|
||||
port,
|
||||
host: 'localhost',
|
||||
port: port,
|
||||
protocol: VITE_ENABLE_SSL ? 'https' : 'http',
|
||||
...(VITE_ENABLE_SSL
|
||||
? {
|
||||
https: {
|
||||
key: fs.readFileSync(env.SSL_KEY_PATH),
|
||||
cert: fs.readFileSync(env.SSL_CERT_PATH),
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
fs: {
|
||||
allow: [
|
||||
searchForWorkspaceRoot(process.cwd()),
|
||||
|
||||
Reference in New Issue
Block a user