Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2 of 3 - build(babel): sw-1348 update presets, targets #1148

Merged
merged 1 commit into from
Jul 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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