From a575e3843a3d6e37ca33add8b40487acc9c02543 Mon Sep 17 00:00:00 2001 From: MateuszMichalowski <79852198+MateuszMichalowski@users.noreply.github.com> Date: Thu, 8 Aug 2024 23:32:01 +0200 Subject: [PATCH] feature(frontend): change env config reading (#3345) --- frontend/package.json | 3 +- frontend/src/config/index.js | 55 ++++++++++++++++++------------------ frontend/vite.config.js | 27 ++++++++++++++++++ frontend/yarn.lock | 5 ++++ 4 files changed, 61 insertions(+), 29 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index c8f849756..7ed0b8358 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -98,7 +98,8 @@ "stylelint-config-standard-scss": "13.1.0", "unplugin-icons": "^0.19.1", "unplugin-vue-components": "^0.27.3", - "vue-html-webpack-plugin": "^3.2.2" + "vue-html-webpack-plugin": "^3.2.2", + "vite-plugin-environment": "^1.1.3" }, "postcss": { "plugins": { diff --git a/frontend/src/config/index.js b/frontend/src/config/index.js index 70ca69a92..78ebc1b5b 100644 --- a/frontend/src/config/index.js +++ b/frontend/src/config/index.js @@ -15,65 +15,64 @@ const constants = { const version = { APP_VERSION: pkg.version, - BUILD_COMMIT: import.meta.env.BUILD_COMMIT ?? null, + BUILD_COMMIT: process.env.BUILD_COMMIT ?? null, // self reference of `version.BUILD_COMMIT` is not possible at this point, hence the duplicate code - BUILD_COMMIT_SHORT: (import.meta.env.BUILD_COMMIT ?? '0000000').slice(0, 7), + BUILD_COMMIT_SHORT: (process.env.BUILD_COMMIT ?? '0000000').slice(0, 7), } const features = { - GMS_ACTIVE: import.meta.env.GMS_ACTIVE ?? false, - HUMHUB_ACTIVE: import.meta.env.HUMHUB_ACTIVE ?? false, + GMS_ACTIVE: process.env.GMS_ACTIVE ?? false, + HUMHUB_ACTIVE: process.env.HUMHUB_ACTIVE ?? false, } const environment = { - NODE_ENV: import.meta.env.NODE_ENV, - DEBUG: import.meta.env.NODE_ENV !== 'production' ?? false, - PRODUCTION: import.meta.env.NODE_ENV === 'production' ?? false, - DEFAULT_PUBLISHER_ID: import.meta.env.DEFAULT_PUBLISHER_ID ?? 2896, - PORT: import.meta.env.PORT ?? 3000, + NODE_ENV: process.env.NODE_ENV, + DEBUG: process.env.NODE_ENV !== 'production' ?? false, + PRODUCTION: process.env.NODE_ENV === 'production' ?? false, + DEFAULT_PUBLISHER_ID: process.env.DEFAULT_PUBLISHER_ID ?? 2896, + PORT: process.env.PORT ?? 3000, } -const COMMUNITY_HOST = import.meta.env.COMMUNITY_HOST ?? 'localhost' -const URL_PROTOCOL = import.meta.env.URL_PROTOCOL ?? 'http' -const COMMUNITY_URL = import.meta.env.COMMUNITY_URL ?? `${URL_PROTOCOL}://${COMMUNITY_HOST}` +const COMMUNITY_HOST = process.env.COMMUNITY_HOST ?? 'localhost' +const URL_PROTOCOL = process.env.URL_PROTOCOL ?? 'http' +const COMMUNITY_URL = process.env.COMMUNITY_URL ?? `${URL_PROTOCOL}://${COMMUNITY_HOST}` const endpoints = { - GRAPHQL_URI: COMMUNITY_URL + (import.meta.env.GRAPHQL_PATH ?? '/graphql'), + GRAPHQL_URI: COMMUNITY_URL + (process.env.GRAPHQL_PATH ?? '/graphql'), ADMIN_AUTH_URL: - COMMUNITY_URL + (import.meta.env.ADMIN_AUTH_PATH ?? '/admin/authenticate?token={token}'), + COMMUNITY_URL + (process.env.ADMIN_AUTH_PATH ?? '/admin/authenticate?token={token}'), } const community = { - COMMUNITY_NAME: import.meta.env.COMMUNITY_NAME ?? 'Gradido Entwicklung', + COMMUNITY_NAME: process.env.COMMUNITY_NAME ?? 'Gradido Entwicklung', COMMUNITY_URL: COMMUNITY_URL, - COMMUNITY_REGISTER_URL: COMMUNITY_URL + (import.meta.env.COMMUNITY_REGISTER_PATH ?? '/register'), + COMMUNITY_REGISTER_URL: COMMUNITY_URL + (process.env.COMMUNITY_REGISTER_PATH ?? '/register'), COMMUNITY_DESCRIPTION: - import.meta.env.COMMUNITY_DESCRIPTION ?? 'Die lokale Entwicklungsumgebung von Gradido.', - COMMUNITY_SUPPORT_MAIL: import.meta.env.COMMUNITY_SUPPORT_MAIL ?? 'support@supportmail.com', + process.env.COMMUNITY_DESCRIPTION ?? 'Die lokale Entwicklungsumgebung von Gradido.', + COMMUNITY_SUPPORT_MAIL: process.env.COMMUNITY_SUPPORT_MAIL ?? 'support@supportmail.com', } const meta = { - META_URL: import.meta.env.META_URL ?? 'http://localhost', - META_TITLE_DE: import.meta.env.META_TITLE_DE ?? 'Gradido – Dein Dankbarkeitskonto', - META_TITLE_EN: import.meta.env.META_TITLE_EN ?? 'Gradido - Your gratitude account', + META_URL: process.env.META_URL ?? 'http://localhost', + META_TITLE_DE: process.env.META_TITLE_DE ?? 'Gradido – Dein Dankbarkeitskonto', + META_TITLE_EN: process.env.META_TITLE_EN ?? 'Gradido - Your gratitude account', META_DESCRIPTION_DE: - import.meta.env.META_DESCRIPTION_DE ?? + process.env.META_DESCRIPTION_DE ?? 'Dankbarkeit ist die Währung der neuen Zeit. Immer mehr Menschen entfalten ihr Potenzial und gestalten eine gute Zukunft für alle.', META_DESCRIPTION_EN: - import.meta.env.META_DESCRIPTION_EN ?? + process.env.META_DESCRIPTION_EN ?? 'Gratitude is the currency of the new age. More and more people are unleashing their potential and shaping a good future for all.', META_KEYWORDS_DE: - import.meta.env.META_KEYWORDS_DE ?? + process.env.META_KEYWORDS_DE ?? 'Grundeinkommen, Währung, Dankbarkeit, Schenk-Ökonomie, Natürliche Ökonomie des Lebens, Ökonomie, Ökologie, Potenzialentfaltung, Schenken und Danken, Kreislauf des Lebens, Geldsystem', META_KEYWORDS_EN: - import.meta.env.META_KEYWORDS_EN ?? + process.env.META_KEYWORDS_EN ?? 'Basic Income, Currency, Gratitude, Gift Economy, Natural Economy of Life, Economy, Ecology, Potential Development, Giving and Thanking, Cycle of Life, Monetary System', - META_AUTHOR: import.meta.env.META_AUTHOR ?? 'Bernd Hückstädt - Gradido-Akademie', + META_AUTHOR: process.env.META_AUTHOR ?? 'Bernd Hückstädt - Gradido-Akademie', } // Check config version -constants.CONFIG_VERSION.CURRENT = - import.meta.env.CONFIG_VERSION ?? constants.CONFIG_VERSION.DEFAULT +constants.CONFIG_VERSION.CURRENT = process.env.CONFIG_VERSION ?? constants.CONFIG_VERSION.DEFAULT if ( ![constants.CONFIG_VERSION.EXPECTED, constants.CONFIG_VERSION.DEFAULT].includes( constants.CONFIG_VERSION.CURRENT, diff --git a/frontend/vite.config.js b/frontend/vite.config.js index 75f058424..9f656789b 100644 --- a/frontend/vite.config.js +++ b/frontend/vite.config.js @@ -6,6 +6,7 @@ import vue from '@vitejs/plugin-vue' import Components from 'unplugin-vue-components/vite' import Icons from 'unplugin-icons/vite' import IconsResolve from 'unplugin-icons/resolver' +import EnvironmentPlugin from 'vite-plugin-environment' import { BootstrapVueNextResolver } from 'bootstrap-vue-next' @@ -43,6 +44,32 @@ export default defineConfig({ compiler: 'vue3', autoInstall: true, }), + EnvironmentPlugin({ + BUILD_COMMIT: null, + GMS_ACTIVE: null, + HUMHUB_ACTIVE: null, + NODE_ENV: null, + DEFAULT_PUBLISHER_ID: null, + PORT: null, + COMMUNITY_HOST: null, + URL_PROTOCOL: null, + COMMUNITY_URL: null, + GRAPHQL_PATH: null, + ADMIN_AUTH_PATH: null, + COMMUNITY_NAME: null, + COMMUNITY_REGISTER_PATH: null, + COMMUNITY_DESCRIPTION: null, + COMMUNITY_SUPPORT_MAIL: null, + META_URL: null, + META_TITLE_DE: null, + META_TITLE_EN: null, + META_DESCRIPTION_DE: null, + META_DESCRIPTION_EN: null, + META_KEYWORDS_DE: null, + META_KEYWORDS_EN: null, + META_AUTHOR: null, + CONFIG_VERSION: null, + }), commonjs(), ], css: { diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 62622df40..3189f451f 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -8570,6 +8570,11 @@ vite-plugin-dynamic-import@^1.5.0: fast-glob "^3.2.12" magic-string "^0.30.1" +vite-plugin-environment@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/vite-plugin-environment/-/vite-plugin-environment-1.1.3.tgz#d01a04abb2f69730a4866c9c9db51d3dab74645b" + integrity sha512-9LBhB0lx+2lXVBEWxFZC+WO7PKEyE/ykJ7EPWCq95NEcCpblxamTbs5Dm3DLBGzwODpJMEnzQywJU8fw6XGGGA== + vite@3.2.10: version "3.2.10" resolved "https://registry.yarnpkg.com/vite/-/vite-3.2.10.tgz#7ac79fead82cfb6b5bf65613cd82fba6dcc81340"