Skip to content

Commit

Permalink
build(babel): sw-1348 update presets, targets
Browse files Browse the repository at this point in the history
* dotenv, fix setting params
* build, babel dist, testing presets, browser targets
* testing, eslint npm updates
  • Loading branch information
cdcabrera committed Jun 29, 2023
1 parent 5082a88 commit ad8604c
Show file tree
Hide file tree
Showing 6 changed files with 967 additions and 145 deletions.
10 changes: 8 additions & 2 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
const { setupDotenvFilesForEnv } = require('./config/build.dotenv');
setupDotenvFilesForEnv({ env: process.env.NODE_ENV || 'production' });
const { NODE_ENV } = setupDotenvFilesForEnv({ env: process.env.NODE_ENV || 'production' });
const { browserslist } = require('./package.json');

module.exports = {
presets: ['react-app']
targets:
(NODE_ENV === 'development' && browserslist?.development?.join(', ')) ||
browserslist?.production?.join(', ') ||
'entry',
presets: ['@babel/preset-env', '@babel/preset-react'],
plugins: ['@babel/plugin-transform-runtime']
};
46 changes: 37 additions & 9 deletions config/build.dotenv.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
const path = require('path');
const dotenv = require('dotenv');
const { expand: dotenvExpand } = require('dotenv-expand');
const Dotenv = require('dotenv-webpack');

/**
* Setup a webpack dotenv plugin config.
Expand All @@ -19,7 +18,15 @@ const setupWebpackDotenvFile = filePath => {
settings.path = filePath;
}

return new Dotenv(settings);
try {
// eslint-disable-next-line global-require
const DotEnv = require('dotenv-webpack');
return new DotEnv(settings);
} catch (e) {
console.warning(`Failed loading dotenv-webpack package: ${e.message}`);
}

return undefined;
};

/**
Expand Down Expand Up @@ -80,14 +87,33 @@ const setupDotenvFilesForEnv = ({
setupDotenvFile(path.resolve(relativePath, '.env'));

if (setBuildDefaults) {
const DEV_MODE = process.env[`${dotenvNamePrefix}_DEV_MODE`] || undefined;
const DIST_DIR = path.resolve(relativePath, process.env[`${dotenvNamePrefix}_DIST_DIR`] || 'dist');
const HOST = process.env[`${dotenvNamePrefix}_HOST`] || 'localhost';
// Core Build
const DEV_MODE = process.env[`${dotenvNamePrefix}_DEV_MODE`] || process.env.DEV_MODE || undefined;
const DIST_DIR = path.resolve(
relativePath,
process.env[`${dotenvNamePrefix}_DIST_DIR`] || process.env.DIST_DIR || 'dist'
);
const HOST = process.env[`${dotenvNamePrefix}_HOST`] || process.env.HOST || 'localhost';
const OUTPUT_ONLY = process.env[`_${dotenvNamePrefix}_OUTPUT_ONLY`] === 'true';
const PORT = process.env[`${dotenvNamePrefix}_PORT`] || '3000';
const PUBLIC_PATH = process.env[`${dotenvNamePrefix}_PUBLIC_PATH`] || '/';
const SRC_DIR = path.resolve(relativePath, process.env[`${dotenvNamePrefix}_SRC_DIR`] || 'src');
const STATIC_DIR = path.resolve(relativePath, process.env[`${dotenvNamePrefix}_STATIC_DIR`] || 'public');
const OPEN_PATH = process.env[`${dotenvNamePrefix}_OPEN_PATH`] || process.env.OPEN_PATH || undefined;
const PORT = process.env[`${dotenvNamePrefix}_PORT`] || process.env.PORT || '3000';
const PUBLIC_PATH = process.env[`${dotenvNamePrefix}_PUBLIC_PATH`] || process.env.PUBLIC_PATH || '/';
const SRC_DIR = path.resolve(
relativePath,
process.env[`${dotenvNamePrefix}_SRC_DIR`] || process.env.SRC_DIR || 'src'
);
const STATIC_DIR = path.resolve(
relativePath,
process.env[`${dotenvNamePrefix}_STATIC_DIR`] || process.env.STATIC_DIR || 'public'
);

// Build Extras - Display name, HTML title
const UI_NAME = process.env[`${dotenvNamePrefix}_UI_NAME`] || process.env.UI_NAME || undefined;

/**
* Note: Consider adding dotenv parameters to your dotenv file instead of adding additional
* build specific dotenv parameters for webpack here.
*/

if (!process.env.NODE_ENV) {
process.env.NODE_ENV = env;
Expand All @@ -96,13 +122,15 @@ const setupDotenvFilesForEnv = ({
process.env[`_${dotenvNamePrefix}_ENV`] = process.env.NODE_ENV;
process.env[`_${dotenvNamePrefix}_STATIC_DIR`] = STATIC_DIR;
process.env[`_${dotenvNamePrefix}_RELATIVE_DIRNAME`] = relativePath;
process.env[`_${dotenvNamePrefix}_OPEN_PATH`] = OPEN_PATH;
process.env[`_${dotenvNamePrefix}_PUBLIC_PATH`] = PUBLIC_PATH;
process.env[`_${dotenvNamePrefix}_SRC_DIR`] = SRC_DIR;
process.env[`_${dotenvNamePrefix}_DIST_DIR`] = DIST_DIR;
process.env[`_${dotenvNamePrefix}_HOST`] = HOST;
process.env[`_${dotenvNamePrefix}_PORT`] = PORT;
process.env[`_${dotenvNamePrefix}_OUTPUT_ONLY`] = OUTPUT_ONLY;
process.env[`_${dotenvNamePrefix}_DEV_MODE`] = DEV_MODE;
process.env[`_${dotenvNamePrefix}_UI_NAME`] = UI_NAME;
}

return process.env;
Expand Down
19 changes: 10 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,8 @@
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
">0.25%",
"not dead"
],
"development": [
"last 1 chrome version",
Expand Down Expand Up @@ -113,13 +112,15 @@
"victory-create-container": "36.6.10"
},
"devDependencies": {
"@babel/core": "7.22.1",
"@babel/eslint-parser": "^7.21.8",
"@babel/core": "7.22.5",
"@babel/eslint-parser": "^7.22.5",
"@babel/plugin-transform-runtime": "^7.22.5",
"@babel/preset-env": "^7.22.5",
"@babel/preset-react": "^7.22.5",
"@redhat-cloud-services/frontend-components-config": "5.0.1",
"@wojtekmaj/enzyme-adapter-react-17": "^0.8.0",
"apidoc-mock": "^4.3.0",
"babel-jest": "^29.5.0",
"babel-preset-react-app": "^10.0.1",
"changelog-light": "^0.4.1",
"copy-webpack-plugin": "^11.0.0",
"cspell": "^6.31.1",
Expand All @@ -128,12 +129,12 @@
"dotenv-webpack": "^8.0.1",
"enzyme": "^3.11.0",
"enzyme-to-json": "^3.6.2",
"eslint": "8.42.0",
"eslint": "8.43.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jest": "^27.2.1",
"eslint-plugin-jsdoc": "^46.2.4",
"eslint-plugin-jest": "^27.2.2",
"eslint-plugin-jsdoc": "^46.4.2",
"eslint-plugin-json": "^3.1.0",
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-node": "^11.1.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -347,10 +347,10 @@ exports[`ServiceConfig should handle producing a service call configuration: res
dolor: sit
},
schema: [
successResponse => \`\${successResponse}-schema-transform\`
successResponse => \\\\.concat(successResponse, \\-schema-transform\\)
],
transform: [
successResponse => \`\${successResponse}-transform\`
successResponse => \\\\.concat(successResponse, \\-transform\\)
],
cacheResponse: false,
method: get,
Expand Down
24 changes: 14 additions & 10 deletions tests/__snapshots__/dist.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -593,13 +593,13 @@ exports[`Build distribution should have a predictable ephemeral navigation based
exports[`Build distribution should match a specific file output 1`] = `
[
"",
"./dist/css/2005*css",
"./dist/css/2582*css",
"./dist/css/4629*css",
"./dist/css/6334*css",
"./dist/css/7109*css",
"./dist/css/8069*css",
"./dist/css/937*css",
"./dist/css/9506*css",
"./dist/css/9659*css",
"./dist/css/exposed-./RootApp*css",
"./dist/fed-mods.json",
"./dist/fonts/graph2x.png",
Expand All @@ -610,11 +610,10 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/js/1355*js",
"./dist/js/136*js",
"./dist/js/1663*js",
"./dist/js/1707*js",
"./dist/js/1707*txt",
"./dist/js/1799*js",
"./dist/js/1824*js",
"./dist/js/1858*js",
"./dist/js/2005*js",
"./dist/js/2227*js",
"./dist/js/2243*js",
"./dist/js/2258*js",
Expand All @@ -630,8 +629,6 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/js/3280*js",
"./dist/js/3385*js",
"./dist/js/353*js",
"./dist/js/3588*js",
"./dist/js/3588*txt",
"./dist/js/3597*js",
"./dist/js/384*js",
"./dist/js/3935*js",
Expand All @@ -657,11 +654,15 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/js/5993*js",
"./dist/js/6170*js",
"./dist/js/6170*txt",
"./dist/js/6194*js",
"./dist/js/6194*txt",
"./dist/js/6334*js",
"./dist/js/6353*js",
"./dist/js/6362*js",
"./dist/js/655*js",
"./dist/js/6587*js",
"./dist/js/6706*js",
"./dist/js/6706*txt",
"./dist/js/6816*js",
"./dist/js/7109*js",
"./dist/js/7109*txt",
Expand All @@ -672,7 +673,6 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/js/7585*js",
"./dist/js/7745*js",
"./dist/js/7891*js",
"./dist/js/8069*js",
"./dist/js/8710*js",
"./dist/js/8900*js",
"./dist/js/9051*js",
Expand All @@ -681,11 +681,13 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/js/939*js",
"./dist/js/9407*js",
"./dist/js/9517*js",
"./dist/js/9659*js",
"./dist/js/9669*js",
"./dist/js/9669*txt",
"./dist/js/9818*js",
"./dist/js/9818*txt",
"./dist/js/9928*js",
"./dist/js/9942*js",
"./dist/js/App*js",
"./dist/js/exposed-./RootApp*js",
"./dist/locales/en-US.json",
Expand All @@ -697,10 +699,10 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/sourcemaps/1355*map",
"./dist/sourcemaps/136*map",
"./dist/sourcemaps/1663*map",
"./dist/sourcemaps/1707*map",
"./dist/sourcemaps/1799*map",
"./dist/sourcemaps/1824*map",
"./dist/sourcemaps/1858*map",
"./dist/sourcemaps/2005*map",
"./dist/sourcemaps/2227*map",
"./dist/sourcemaps/2243*map",
"./dist/sourcemaps/2258*map",
Expand All @@ -716,7 +718,6 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/sourcemaps/3280*map",
"./dist/sourcemaps/3385*map",
"./dist/sourcemaps/353*map",
"./dist/sourcemaps/3588*map",
"./dist/sourcemaps/3597*map",
"./dist/sourcemaps/384*map",
"./dist/sourcemaps/3935*map",
Expand All @@ -738,19 +739,20 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/sourcemaps/5925*map",
"./dist/sourcemaps/5993*map",
"./dist/sourcemaps/6170*map",
"./dist/sourcemaps/6194*map",
"./dist/sourcemaps/6334*map",
"./dist/sourcemaps/6353*map",
"./dist/sourcemaps/6362*map",
"./dist/sourcemaps/655*map",
"./dist/sourcemaps/6587*map",
"./dist/sourcemaps/6706*map",
"./dist/sourcemaps/6816*map",
"./dist/sourcemaps/7109*map",
"./dist/sourcemaps/7216*map",
"./dist/sourcemaps/7235*map",
"./dist/sourcemaps/7294*map",
"./dist/sourcemaps/7585*map",
"./dist/sourcemaps/7891*map",
"./dist/sourcemaps/8069*map",
"./dist/sourcemaps/8710*map",
"./dist/sourcemaps/8900*map",
"./dist/sourcemaps/9051*map",
Expand All @@ -759,9 +761,11 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/sourcemaps/939*map",
"./dist/sourcemaps/9407*map",
"./dist/sourcemaps/9517*map",
"./dist/sourcemaps/9659*map",
"./dist/sourcemaps/9669*map",
"./dist/sourcemaps/9818*map",
"./dist/sourcemaps/9928*map",
"./dist/sourcemaps/9942*map",
"./dist/sourcemaps/App*map",
"./dist/sourcemaps/exposed-./RootApp*map",
"./dist/subscriptions*js",
Expand Down
Loading

0 comments on commit ad8604c

Please sign in to comment.