setup nconf correctly for client build
This commit is contained in:
Generated
-1
@@ -47,7 +47,6 @@
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
|
||||
"@vitest/browser": "^3.0.5",
|
||||
"babel-plugin-lodash": "^3.3.4",
|
||||
"chai": "^5.1.0",
|
||||
"inspectpack": "^4.7.1",
|
||||
"jsdom": "^26.0.0",
|
||||
"mocha": "^11.1.0",
|
||||
|
||||
@@ -3,14 +3,13 @@ import path from 'path';
|
||||
import { defineConfig } from 'vite'
|
||||
import vue from '@vitejs/plugin-vue2'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
import setupNconf from '../server/libs/setupNconf';
|
||||
|
||||
const configFile = path.join(path.resolve(__dirname, '../../config.json'));
|
||||
|
||||
// TODO abstract from server
|
||||
nconf.file('user', configFile)
|
||||
|
||||
setupNconf(configFile, nconf);
|
||||
const DEV_BASE_URL = nconf.get('BASE_URL');
|
||||
|
||||
|
||||
const envVars = [
|
||||
'AMAZON_PAYMENTS_SELLER_ID',
|
||||
'AMAZON_PAYMENTS_CLIENT_ID',
|
||||
@@ -18,7 +17,6 @@ const envVars = [
|
||||
'EMAILS_COMMUNITY_MANAGER_EMAIL',
|
||||
'EMAILS_TECH_ASSISTANCE_EMAIL',
|
||||
'EMAILS_PRESS_ENQUIRY_EMAIL',
|
||||
'BASE_URL',
|
||||
'GA_ID',
|
||||
'STRIPE_PUB_KEY',
|
||||
'GOOGLE_CLIENT_ID',
|
||||
@@ -38,31 +36,35 @@ envVars
|
||||
.forEach(key => {
|
||||
envObject[`import.meta.env.${key}`] = `'${nconf.get(key)}'`;
|
||||
});
|
||||
if (nconf.get('BASE_URL').indexOf('//habitica.com') !== -1) {
|
||||
envObject['import.meta.env.DEBUG_ENABLED'] = `false`;
|
||||
envObject['import.meta.env.TIME_TRAVEL_ENABLED'] = `false`;
|
||||
}
|
||||
|
||||
// https://vitejs.dev/config/
|
||||
export default defineConfig({
|
||||
define: envObject,
|
||||
resolve: {
|
||||
alias: [
|
||||
{ find: '@', replacement: fileURLToPath(new URL('./src', import.meta.url)) },
|
||||
{ find: '~', replacement: fileURLToPath(new URL('./node_modules', import.meta.url)) },
|
||||
],
|
||||
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
|
||||
},
|
||||
plugins: [
|
||||
vue()
|
||||
alias: [
|
||||
{ find: '@', replacement: fileURLToPath(new URL('./src', import.meta.url)) },
|
||||
{ find: '~', replacement: fileURLToPath(new URL('./node_modules', import.meta.url)) },
|
||||
],
|
||||
optimizeDeps: {
|
||||
include: ['moment-recur']
|
||||
},
|
||||
build: {
|
||||
commonjsOptions: {
|
||||
include: [/moment-recur/, /node_modules/]
|
||||
}
|
||||
},
|
||||
base: '/',
|
||||
server: {
|
||||
headers: { 'Cache-Control': 'no-store' },
|
||||
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
|
||||
},
|
||||
plugins: [
|
||||
vue()
|
||||
],
|
||||
optimizeDeps: {
|
||||
include: ['moment-recur']
|
||||
},
|
||||
build: {
|
||||
commonjsOptions: {
|
||||
include: [/moment-recur/, /node_modules/]
|
||||
}
|
||||
},
|
||||
base: '/',
|
||||
server: {
|
||||
headers: { 'Cache-Control': 'no-store' },
|
||||
proxy: {
|
||||
// proxy all requests to the server at IP:PORT as specified in the top-level config
|
||||
'^/api/v3': {
|
||||
|
||||
@@ -9,7 +9,7 @@ if (process.env.NODE_ENV !== 'production') {
|
||||
|
||||
const cluster = require('cluster');
|
||||
|
||||
const setupNconf = require('./libs/setupNconf');
|
||||
const setupNconf = require('./libs/setupNconf').default;
|
||||
|
||||
// Initialize configuration BEFORE anything
|
||||
setupNconf();
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
/* eslint-disable import/no-commonjs */
|
||||
// NOTE es5 requires/exports to allow import from webpack
|
||||
const nconfDefault = require('nconf');
|
||||
const { join, resolve } = require('path');
|
||||
import nconfDefault from 'nconf';
|
||||
import { join, resolve } from 'path';
|
||||
|
||||
const PATH_TO_CONFIG = join(resolve(__dirname, '../../../config.json'));
|
||||
|
||||
module.exports = function setupNconf (file, nconfInstance = nconfDefault) {
|
||||
export default function setupNconf (file, nconfInstance = nconfDefault) {
|
||||
const configFile = file || PATH_TO_CONFIG;
|
||||
|
||||
nconfInstance
|
||||
@@ -16,4 +16,4 @@ module.exports = function setupNconf (file, nconfInstance = nconfDefault) {
|
||||
nconfInstance.set('IS_PROD', nconfInstance.get('NODE_ENV') === 'production');
|
||||
nconfInstance.set('IS_DEV', nconfInstance.get('NODE_ENV') === 'development');
|
||||
nconfInstance.set('IS_TEST', nconfInstance.get('NODE_ENV') === 'test');
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user