diff --git a/tools/scripts-config-react-webpack/config/inject.js b/tools/scripts-config-react-webpack/config/inject.js
deleted file mode 100644
index a90a2bea503..00000000000
--- a/tools/scripts-config-react-webpack/config/inject.js
+++ /dev/null
@@ -1,16 +0,0 @@
-const babel = require('@babel/core');
-const fs = require('fs');
-const path = require('path');
-const defaultOptions = require('@talend/scripts-config-babel/.babelrc.json');
-const { minify } = require('terser');
-
-// terser.minify is an async function, we use deasync to make it used as synced function within webpack
-const getMinified = async () => {
- const src = fs.readFileSync(path.join(__dirname, '../src/inject.js'), 'utf-8');
- const lib = babel.transformSync(src, defaultOptions).code;
- return (await minify(lib)).code;
-};
-
-module.exports = {
- getMinified,
-};
diff --git a/tools/scripts-config-react-webpack/config/webpack.config.js b/tools/scripts-config-react-webpack/config/webpack.config.js
index 2c4662e9671..65233e42ce8 100644
--- a/tools/scripts-config-react-webpack/config/webpack.config.js
+++ b/tools/scripts-config-react-webpack/config/webpack.config.js
@@ -15,10 +15,8 @@ const { DuplicatesPlugin } = require('inspectpack/plugin');
const SentryWebpackPlugin = require('@sentry/webpack-plugin');
const ReactCMFWebpackPlugin = require('@talend/react-cmf-webpack-plugin');
-const cdn = require('@talend/scripts-config-cdn');
const utils = require('@talend/scripts-utils');
const LICENSE_BANNER = require('./licence');
-const inject = require('./inject');
const icons = require('./icons');
const AppLoader = require('./loader');
const {
@@ -30,19 +28,11 @@ const {
getFileNameForExtension,
} = require('./webpack.config.common');
-const INITIATOR_URL = process.env.INITIATOR_URL || '@@INITIATOR_URL@@';
-const cdnMode = !!process.env.INITIATOR_URL;
-
const DEFAULT_INDEX_TEMPLATE_PATH = 'src/app/index.html';
const BASE_TEMPLATE_PATH = path.join(__dirname, 'index.tpl.html');
-const TALEND_LIB_PREFIX = '@talend/';
-
const BASENAME = process.env.BASENAME || '/';
-// set @talend packages in module-to-cdn
-cdn.configureTalendModules();
-
// Check if Typescript is setup
const useTypescript = utils.fs.tsConfig();
@@ -59,91 +49,14 @@ function getGitRevision() {
return revision;
}
-function getTalendVersions() {
- const talendLibraries = {};
- const packagelockPath = path.join(process.cwd(), 'package-lock.json');
- const yarnlockPath = path.join(process.cwd(), 'yarn.lock');
- // eslint-disable-next-line
- const packageJson = require(path.join(process.cwd(), 'package.json'));
-
- const talendDependencies = Object.keys(packageJson.dependencies).filter(dependency =>
- dependency.includes(TALEND_LIB_PREFIX),
- );
-
- if (fs.existsSync(yarnlockPath)) {
- const data = fs.readFileSync(yarnlockPath, 'utf-8');
- const lock = yarnlock.parse(data);
-
- Object.keys(lock.object)
- .filter(k => k.startsWith(TALEND_LIB_PREFIX))
- .reduce((acc, key) => {
- // @talend/react-components@5.1.2
- const name = `${TALEND_LIB_PREFIX}${key.split('/')[1].split('@')[0]}`;
- if (talendDependencies.includes(name)) {
- const info = lock.object[key];
- acc[name] = info.version;
- }
- return acc;
- }, talendLibraries);
- } else if (fs.existsSync(packagelockPath)) {
- // eslint-disable-next-line
- const packageLock = require(packagelockPath);
-
- Object.keys(packageLock.packages || packageLock.dependencies)
- .filter(k => k.includes(TALEND_LIB_PREFIX))
- .reduce((acc, key) => {
- const name = `${TALEND_LIB_PREFIX}${key.split(TALEND_LIB_PREFIX)[1]}`;
- if (talendDependencies.includes(name)) {
- acc[name] = (packageLock.packages || packageLock.dependencies)[key].version;
- }
- return acc;
- }, talendLibraries);
- }
+// eslint-disable-next-line import/no-dynamic-require
+const packageJson = require(path.join(process.cwd(), 'package.json'));
- let revision = process.env.GIT_COMMIT;
- if (!revision) {
- try {
- revision = childProcess.execSync('git rev-parse HEAD').toString().trim();
- } catch (e) {
- // eslint-disable-next-line no-console
- console.info('Failed to get git revision');
- }
- }
-
- return {
- version: packageJson.version,
- talendLibraries: Object.entries(talendLibraries).map(([name, version]) => ({ name, version })),
- revision,
- };
-}
-
-function getVersions() {
- const talendLibraries = cdn
- .getModulesFromLockFile()
- .filter(Boolean)
- .map(info => ({ version: info.version, name: info.name }));
- // eslint-disable-next-line
- const packageJson = require(path.join(process.cwd(), 'package.json'));
-
- return {
- version: packageJson.version,
- talendLibraries,
- revision: getGitRevision(),
- };
-}
-
-const VERSIONS = getVersions();
// meta for html webpack plugin
-const meta = VERSIONS.talendLibraries.reduce(
- (acc, lib) => {
- acc[lib.name] = lib.version;
- return acc;
- },
- {
- 'app-version': VERSIONS.version,
- 'app-revision': VERSIONS.revision,
- },
-);
+const meta = {
+ 'app-version': packageJson.version,
+ 'app-revision': getGitRevision(),
+};
function renderMeta() {
return Object.keys(meta)
@@ -151,7 +64,7 @@ function renderMeta() {
.join('\n');
}
-function getCopyConfig(env, userCopyConfig = [], noDynamicCdn) {
+function getCopyConfig(env, userCopyConfig = []) {
const config = [...userCopyConfig];
const assetsOverridden = config.some(nextAsset =>
typeof nextAsset === 'object' ? nextAsset.from === 'src/assets' : nextAsset === 'src/assets',
@@ -159,13 +72,10 @@ function getCopyConfig(env, userCopyConfig = [], noDynamicCdn) {
if (!assetsOverridden && fs.existsSync(path.join(process.cwd(), 'src/assets'))) {
config.push({ from: 'src/assets' });
}
- if (!cdnMode && !noDynamicCdn) {
- cdn.getCopyConfig().forEach(c => config.push(c));
- }
return config;
}
-async function getIndexTemplate(env, mode, indexTemplatePath, useInitiator = true) {
+async function getIndexTemplate(env, mode, indexTemplatePath) {
const headPath = path.join(process.cwd(), '.talend', 'head.html');
const headExists = await utils.fs.isFile(headPath);
@@ -175,33 +85,10 @@ async function getIndexTemplate(env, mode, indexTemplatePath, useInitiator = tru
console.log('custom head.html found');
customHead = await fs.promises.readFile(headPath);
}
- /*
- * The following header is used to inject.
- * Some UMD are not built correctly for browser.
- * For example react-is index.js includes a test on process.env.NODE_ENV to require the min version or not.
- * Let's bypass this issue by setting a process.env.NODE_ENV
- */
- let headScript = '';
- if (useInitiator) {
- // meta are not injected if inject is false
- headScript = `${renderMeta()}
- `;
- }
const header = `${customHead}
- ${headScript}
+
`;
// fs.exists is deprecated
const templateExists = await utils.fs.isFile(indexTemplatePath);
@@ -234,7 +121,6 @@ module.exports = ({ getUserConfig, mode }) => {
const userSassData = getUserConfig('sass', {});
const userCopyConfig = getUserConfig('copy', []);
const cmf = getUserConfig('cmf');
- const dcwpConfig = getUserConfig('dynamic-cdn-webpack-plugin');
const sentryConfig = getUserConfig('sentry', {});
const { theme } = userSassData;
@@ -248,12 +134,7 @@ module.exports = ({ getUserConfig, mode }) => {
meta['app-id'] = userHtmlConfig.appId || theme;
- const indexTemplate = await getIndexTemplate(
- env,
- mode,
- indexTemplatePath,
- dcwpConfig !== false,
- );
+ const indexTemplate = await getIndexTemplate(env, mode, indexTemplatePath);
const isEnvDevelopment = mode === 'development';
const isEnvProduction = mode === 'production';
@@ -319,7 +200,6 @@ module.exports = ({ getUserConfig, mode }) => {
isEnvDevelopment && !!env.analyze && new DuplicatesPlugin(),
new webpack.DefinePlugin({
BUILD_TIMESTAMP: Date.now(),
- TALEND_APP_INFO: JSON.stringify(getTalendVersions()),
'process.env.ICON_BUNDLE': JSON.stringify(process.env.ICON_BUNDLE),
'process.env.FORM_MOZ': JSON.stringify(process.env.FORM_MOZ),
'process.env.DISABLE_JS_ERROR_NOTIFICATION': JSON.stringify(
@@ -343,9 +223,9 @@ module.exports = ({ getUserConfig, mode }) => {
// see https://docs.sentry.io/platforms/node/guides/aws-lambda/sourcemaps/uploading/webpack/
org: sentryConfig.org || process.env.SENTRY_ORG || 'talend-0u',
project: sentryConfig.project || process.env.SENTRY_PROJECT,
- release: `${meta['app-id']}@${VERSIONS.version}`,
+ release: `${meta['app-id']}@${packageJson.version}`,
include: sentryConfig.include || ['dist/'],
- ignore: sentryConfig.ignore || ['cdn/'],
+ ignore: sentryConfig.ignore,
}),
new HtmlWebpackPlugin({
filename: './index.html',
@@ -353,13 +233,11 @@ module.exports = ({ getUserConfig, mode }) => {
appLoaderStyle: AppLoader.getLoaderStyle(appLoaderIcon),
...userHtmlConfig,
b64favicon,
- inject: dcwpConfig === false,
template: indexTemplate,
meta: { ...meta, ...(userHtmlConfig.meta || {}) },
}),
- cdn.getWebpackPlugin(env, dcwpConfig),
new CopyWebpackPlugin({
- patterns: getCopyConfig(env, userCopyConfig, dcwpConfig === false),
+ patterns: getCopyConfig(env, userCopyConfig),
}),
new webpack.BannerPlugin({ banner: LICENSE_BANNER, entryOnly: true }),
cmf && new ReactCMFWebpackPlugin({ watch: isEnvDevelopment }),
diff --git a/tools/scripts-config-react-webpack/config/webpack.config.umd.js b/tools/scripts-config-react-webpack/config/webpack.config.umd.js
index 44884597e29..309376d14d3 100644
--- a/tools/scripts-config-react-webpack/config/webpack.config.umd.js
+++ b/tools/scripts-config-react-webpack/config/webpack.config.umd.js
@@ -5,8 +5,6 @@ const CopyWebpackPlugin = require('copy-webpack-plugin');
const { DuplicatesPlugin } = require('inspectpack/plugin');
const CircularDependencyPlugin = require('circular-dependency-plugin');
-const cdn = require('@talend/scripts-config-cdn');
-
const utils = require('@talend/scripts-utils');
const {
@@ -17,10 +15,7 @@ const {
getAssetsRules,
} = require('./webpack.config.common');
-cdn.configureTalendModules();
-
module.exports = options => {
- const dcwpConfig = options.getUserConfig('dynamic-cdn-webpack-plugin');
const cssModulesEnabled = options.getUserConfig(['css', 'modules'], true);
const userCopyConfig = options.getUserConfig('copy', []);
const useTypescript = utils.fs.tsConfig();
@@ -87,7 +82,6 @@ module.exports = options => {
filename: isEnvProd ? `${name}.min.css` : `${name}.css`,
chunkFilename: isEnvProd ? `${name}.min.css` : `${name}.css`,
}),
- cdn.getWebpackPlugin(env, dcwpConfig),
userCopyConfig.length > 0 && new CopyWebpackPlugin({ patterns: userCopyConfig }),
].filter(Boolean),
};
diff --git a/tools/scripts-config-react-webpack/src/inject.js b/tools/scripts-config-react-webpack/src/inject.js
deleted file mode 100644
index 4e459b76c0e..00000000000
--- a/tools/scripts-config-react-webpack/src/inject.js
+++ /dev/null
@@ -1,66 +0,0 @@
-// eslint-disable-next-line func-names
-(function () {
- const jsFiles = window.jsFiles || [];
- const cssFiles = window.cssFiles || [];
-
- function talendAddScripts(jsMetas, prepareUrl) {
- jsMetas.forEach(function onUrl(jsMeta) {
- const metaIsUrl = typeof jsMeta === 'string';
- let finalUrl = metaIsUrl ? jsMeta : jsMeta.path;
- const integrity = metaIsUrl ? undefined : jsMeta.integrity;
- if (prepareUrl) {
- finalUrl = prepareUrl(finalUrl);
- }
- const script = document.createElement('script');
- script.setAttribute('src', finalUrl);
- script.setAttribute('type', 'text/javascript');
- if (integrity) {
- script.setAttribute('integrity', integrity);
- script.setAttribute('crossorigin', 'anonymous');
- }
- script.async = false;
- document.body.appendChild(script);
- });
- }
-
- function talendAddStyles(cssMetas, prepareUrl) {
- const title = document.getElementsByTagName('TITLE')[0];
- cssMetas.forEach(function onUrl(cssMeta) {
- const metaIsUrl = typeof cssMeta === 'string';
- let finalUrl = metaIsUrl ? cssMeta : cssMeta.path;
- const integrity = metaIsUrl ? undefined : cssMeta.integrity;
- if (prepareUrl) {
- finalUrl = prepareUrl(finalUrl);
- }
- const style = document.createElement('link');
- style.setAttribute('rel', 'stylesheet');
- style.setAttribute('media', 'print');
- style.setAttribute('onload', 'this.media="all"');
- if (integrity) {
- style.setAttribute('integrity', integrity);
- style.setAttribute('crossorigin', 'anonymous');
- }
- style.setAttribute('href', finalUrl);
- document.head.insertBefore(style, title);
- });
- }
-
- window.talendAddStyles = talendAddStyles;
- window.talendAddScripts = talendAddScripts;
-
- document.addEventListener('DOMContentLoaded', function onDocumentReady() {
- if (!window.TALEND_INITIATOR_URL.startsWith('@@')) {
- talendAddScripts([window.TALEND_INITIATOR_URL]);
- } else {
- // on prem
- // if a base tag is present, it defines the base path where the app is hosted
- // in this case, we make the url relative to ensure the right path resolution
- const base = document.querySelector('base');
- const prepareUrl = url => (base ? url.slice(1) : url);
-
- talendAddStyles(cssFiles, prepareUrl);
- talendAddScripts(jsFiles, prepareUrl);
- }
- });
- window.Talend.CDN_URL = '/cdn';
-})();