@zohodesk/react-cli 1.1.17 → 1.1.18-exp.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/lib/babel/babel-option-utils/babel-preset-react-option.js +22 -0
- package/lib/babel/cmjs-plugins-presets.js +7 -1
- package/lib/babel/es-plugins-presets.js +7 -1
- package/lib/configs/webpack.dev.config.js +7 -2
- package/lib/configs/webpack.prod.config.js +9 -2
- package/lib/loaderUtils/getDevJsLoaders.js +5 -1
- package/lib/schemas/index.js +4 -0
- package/npm-shrinkwrap.json +31 -5
- package/package.json +1 -1
- package/packages/client_build_tool/lib/allCommandsConfigs.js +23 -0
- package/packages/client_build_tool/lib/buildToolLoggers.js +32 -0
- package/packages/client_build_tool/lib/commands/build/commandExecutor.js +21 -0
- package/packages/client_build_tool/lib/commands/build/config.js +12 -0
- package/packages/client_build_tool/lib/commands/build/errorHander.js +10 -0
- package/packages/client_build_tool/lib/commands/build/index.js +35 -0
- package/packages/client_build_tool/lib/commands/build/optionsProcesser.js +40 -0
- package/packages/client_build_tool/lib/commands/buildEs/commandExecutor.js +17 -0
- package/packages/client_build_tool/lib/commands/buildEs/config.js +12 -0
- package/packages/client_build_tool/lib/commands/buildLib/commandExecutor.js +17 -0
- package/packages/client_build_tool/lib/commands/buildLib/config.js +12 -0
- package/packages/client_build_tool/lib/commands/start/commandExecutor.js +13 -0
- package/packages/client_build_tool/lib/commands/start/config.js +12 -0
- package/packages/client_build_tool/lib/commands/start/deprecationHandler.js +10 -0
- package/packages/client_build_tool/lib/commands/start/errorHander.js +10 -0
- package/packages/client_build_tool/lib/commands/start/optionsProcesser.js +36 -0
- package/packages/client_build_tool/lib/commands/start/postProcesser.js +10 -0
- package/packages/client_build_tool/lib/commands/start/preProcesser.js +10 -0
- package/packages/client_build_tool/lib/commandsRouter.js +71 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/common/decidePublicPath.js +44 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/common/libAlias.js +31 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/common/nameTemplates.js +51 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/common/resourceBasedPublicPath.js +21 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/cssLoaders.js +16 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin.js +111 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/EFCPlugin.js +1 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ContributionGuide.md +11 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nKeysIdentifer.js +136 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nSplit.md +95 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/README.md +25 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/constants.js +29 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/createHash.js +24 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nDependency.js +99 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nLoadingRuntimeModule.js +81 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nModule.js +201 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/index.js +401 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/optionsHandler.js +67 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/pathCreator.js +23 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/readI18nValues.js +29 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateFileName.js +49 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateHashHelpers.js +77 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectI18nKeys.js +63 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/hashUtils.js +19 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/index.js +31 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/propertiesUtils.js +127 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RTLSplitPlugin.js +1 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +63 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtlCssPlugin.js +89 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtrSplit.md +34 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/replaceCssDirTemplate.js +15 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPlugin.js +155 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin.js +49 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_postcss_loaders/ExcludePlugin.js +58 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_postcss_loaders/RTLSplitPlugin.js +139 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/devServerConfig.js +34 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/getCSSLoaders.js +30 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/jsLoaders.js +17 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/assetLoaders.js +14 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/babelLoaderConfig.js +24 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configHtmlTemplateLoader.js +18 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configWebWorkerLoader.js +21 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configsAssetsLoaders.js +138 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/cssClassNameGenerate.js +83 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/getCssLoaderOptions.js +23 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaders/workerLoader.js +133 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/optimizationConfig.js +39 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/outputConfig.js +28 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCdnChangePlugin.js +18 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCopyThirdpartyFile.js +38 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configEnvVariables.js +24 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configHtmlWebpackPlugin.js +28 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configI18nSplitPlugin.js +35 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configIgnorePlugin.js +16 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configMiniCSSExtractPlugin.js +23 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configProgressPlugin.js +19 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configRtlCssPlugin.js +27 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configServiceWorkerPlugin.js +18 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configUglifyCSSPlugin.js +15 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/plugins.js +39 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/postcssPlugins.js +36 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/resolvers.js +42 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/splitChunksConfig.js +12 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/webpack.dev.config.js +17 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/webpackBuild.js +24 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/webpackConfig.js +50 -0
- package/packages/client_build_tool/lib/shared/commands-utlis/doBasicRequiermentCheck.js +16 -0
- package/packages/client_build_tool/lib/shared/commands-utlis/getCliPath.js +38 -0
- package/packages/client_build_tool/lib/shared/commands-utlis/index.js +29 -0
- package/packages/client_build_tool/lib/shared/commands-utlis/log.js +13 -0
- package/packages/client_build_tool/lib/shared/commands-utlis/readArgsFormCommandLine.js +11 -0
- package/packages/client_build_tool/lib/shared/commands-utlis/readOptionFormCommandLine.js +11 -0
- package/packages/client_build_tool/lib/shared/commands-utlis/spanSync.js +35 -0
- package/packages/client_build_tool/lib/shared/constants.js +33 -0
- package/packages/client_build_tool/lib/shared/schemas/applyValuesToShema.js +37 -0
- package/packages/client_build_tool/lib/shared/schemas/cliArgsToObject.js +37 -0
- package/packages/client_build_tool/lib/shared/schemas/defaultConfigValues.js +119 -0
- package/packages/client_build_tool/lib/shared/schemas/deprecatedOptionsHandler.js +65 -0
- package/packages/client_build_tool/lib/shared/schemas/getCWD.js +23 -0
- package/packages/client_build_tool/lib/shared/schemas/getNpmVersion.js +21 -0
- package/packages/client_build_tool/lib/shared/schemas/npmConfigToObject.js +32 -0
- package/packages/client_build_tool/lib/shared/schemas/oldDefaultConfigValues.js +480 -0
- package/packages/client_build_tool/lib/shared/schemas/readOptions.js +55 -0
- package/packages/client_build_tool/lib/shared/schemas/readOptionsForPackageJson.js +26 -0
- package/packages/client_build_tool/lib/shared/schemas/readOptionsOld.js +152 -0
- package/packages/client_build_tool/lib/shared/server/cert/Tsicsezwild-22-23.crt +37 -0
- package/packages/client_build_tool/lib/shared/server/cert/Tsicsezwild-22-23.key +27 -0
- package/packages/client_build_tool/lib/shared/server/configWebpackDevMiddleware.js +40 -0
- package/packages/client_build_tool/lib/shared/server/corsHandleing.js +28 -0
- package/packages/client_build_tool/lib/shared/server/getIp.js +30 -0
- package/packages/client_build_tool/lib/shared/server/getServerURL.js +29 -0
- package/packages/client_build_tool/lib/shared/server/httpsOptions.js +53 -0
- package/packages/client_build_tool/lib/shared/server/initExpressApp.js +19 -0
- package/packages/client_build_tool/lib/shared/server/initialHTMLHandling.js +66 -0
- package/packages/client_build_tool/lib/shared/server/serveContextFiles.js +24 -0
- package/packages/client_build_tool/lib/shared/server/serverBywebpackDevMiddleware.js +40 -0
- package/packages/client_build_tool/lib/shared/server/startHttpServer.js +26 -0
- package/packages/client_build_tool/lib/shared/server/startHttpsServer.js +34 -0
- package/packages/client_build_tool/lib/shared/server/unwanted/addHttp2Server.js +41 -0
- package/packages/client_build_tool/lib/shared/server/unwanted/configWebpackDevMiddleware.js +44 -0
- package/packages/client_build_tool/lib/shared/server/unwanted/devServerUtlis.js +1 -0
- package/packages/client_build_tool/lib/shared/server/unwanted/mockApiSupport.js +19 -0
- package/packages/client_build_tool/lib/shared/server/unwanted/webpackConfig.js +32 -0
- package/packages/client_build_tool/lib/shared/server/unwanted/websocketMockSetup.js +48 -0
- package/packages/client_build_tool/lib/shared/server/urlConcat.js +25 -0
- package/packages/client_build_tool/lib/shared/utils/utils.js +1 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.commandExecutor = commandExecutor;
|
|
7
|
+
|
|
8
|
+
var _serverBywebpackDevMiddleware = require("../../shared/server/serverBywebpackDevMiddleware");
|
|
9
|
+
|
|
10
|
+
function commandExecutor(options) {
|
|
11
|
+
// require("../../shared/server/devServer").run(options);
|
|
12
|
+
(0, _serverBywebpackDevMiddleware.run)(options);
|
|
13
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.deprecationHandler = deprecationHandler;
|
|
7
|
+
|
|
8
|
+
function deprecationHandler(options) {// options.app.deprecated &&
|
|
9
|
+
// console.log('options.app.deprecated this option was deprecated since V1.3.1' );
|
|
10
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.optionsProcesser = optionsProcesser;
|
|
7
|
+
|
|
8
|
+
var _path = require("path");
|
|
9
|
+
|
|
10
|
+
var _decidePublicPath = require("../../shared/bundler/webpack/common/decidePublicPath");
|
|
11
|
+
|
|
12
|
+
var _urlConcat = require("../../shared/server/urlConcat");
|
|
13
|
+
|
|
14
|
+
function optionsProcesser(options) {
|
|
15
|
+
const {
|
|
16
|
+
server,
|
|
17
|
+
context
|
|
18
|
+
} = options;
|
|
19
|
+
const {
|
|
20
|
+
disableContextURL
|
|
21
|
+
} = server;
|
|
22
|
+
const serverExtras = (0, _decidePublicPath.modifiedServerOptions)(options);
|
|
23
|
+
const publicPath = (0, _decidePublicPath.decidePublicPath)(serverExtras);
|
|
24
|
+
const contextURL = disableContextURL ? '' : `/${context}`;
|
|
25
|
+
const serverURL = (0, _urlConcat.urlConcat)(publicPath, contextURL);
|
|
26
|
+
const contextFolderPath = (0, _path.join)(process.cwd(), context);
|
|
27
|
+
const defaultApplyedOptions = { ...options,
|
|
28
|
+
serverExtras,
|
|
29
|
+
publicPath,
|
|
30
|
+
contextURL,
|
|
31
|
+
serverURL,
|
|
32
|
+
contextFolderPath,
|
|
33
|
+
httpsOptions: serverExtras.httpsOptions
|
|
34
|
+
};
|
|
35
|
+
return defaultApplyedOptions;
|
|
36
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.route = route;
|
|
7
|
+
|
|
8
|
+
var _fs = require("fs");
|
|
9
|
+
|
|
10
|
+
var _path = require("path");
|
|
11
|
+
|
|
12
|
+
var _allCommandsConfigs = _interopRequireDefault(require("./allCommandsConfigs"));
|
|
13
|
+
|
|
14
|
+
var _buildToolLoggers = require("./buildToolLoggers");
|
|
15
|
+
|
|
16
|
+
var _readOptions = require("./shared/schemas/readOptions");
|
|
17
|
+
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
+
|
|
20
|
+
function runCommand(commandConfig) {
|
|
21
|
+
const options = (0, _readOptions.getOptions)();
|
|
22
|
+
const {
|
|
23
|
+
dirname
|
|
24
|
+
} = commandConfig;
|
|
25
|
+
|
|
26
|
+
function runRespectiveFile(name, data) {
|
|
27
|
+
const commandExecutorPath = (0, _path.join)(dirname, name + ".js");
|
|
28
|
+
|
|
29
|
+
if ((0, _fs.existsSync)(commandExecutorPath)) {
|
|
30
|
+
const commandExecutor = require(commandExecutorPath);
|
|
31
|
+
|
|
32
|
+
return (commandExecutor[name] || commandExecutor.default)(data);
|
|
33
|
+
} else {
|
|
34
|
+
(0, _buildToolLoggers.debugLogger)("file not found", commandExecutorPath);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const processedOption = runRespectiveFile("optionsProcesser", options) || options;
|
|
39
|
+
runRespectiveFile("deprecationHandler", processedOption); // runRespectiveFile("errorHandler", () => {
|
|
40
|
+
|
|
41
|
+
runRespectiveFile("preProcesser", processedOption);
|
|
42
|
+
runRespectiveFile("commandExecutor", processedOption);
|
|
43
|
+
runRespectiveFile("postProcesser", processedOption); // });
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function route(option, args) {
|
|
47
|
+
// TODO: need to modify this log
|
|
48
|
+
(0, _buildToolLoggers.debugLogger)("the command was " + option, args);
|
|
49
|
+
const commandConfig = findCommandConfig(option);
|
|
50
|
+
|
|
51
|
+
if (commandConfig) {
|
|
52
|
+
try {
|
|
53
|
+
runCommand(commandConfig);
|
|
54
|
+
} catch (error) {
|
|
55
|
+
console.error(error);
|
|
56
|
+
}
|
|
57
|
+
} else {
|
|
58
|
+
// TODO: need to write proper error message
|
|
59
|
+
(0, _buildToolLoggers.warnLogger)("Un known command", option, "please check the document");
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function findCommandConfig(option) {
|
|
64
|
+
for (const commandConfig of _allCommandsConfigs.default) {
|
|
65
|
+
if (commandConfig.name === option || commandConfig.alias.includes(option)) {
|
|
66
|
+
return commandConfig;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.decidePublicPath = decidePublicPath;
|
|
7
|
+
exports.modifiedServerOptions = modifiedServerOptions;
|
|
8
|
+
|
|
9
|
+
var _getServerURL = require("../../../server/getServerURL");
|
|
10
|
+
|
|
11
|
+
var _httpsOptions = require("../../../server/httpsOptions");
|
|
12
|
+
|
|
13
|
+
function decidePublicPath(serverExtras) {
|
|
14
|
+
return serverExtras.isHttps ? serverExtras.httpsUrl : serverExtras.httpUrl;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function modifiedServerOptions(options) {
|
|
18
|
+
const {
|
|
19
|
+
server
|
|
20
|
+
} = options;
|
|
21
|
+
const {
|
|
22
|
+
port
|
|
23
|
+
} = server;
|
|
24
|
+
const httpsOptions = (0, _httpsOptions.httpsOptionsWithUserFriendlyError)(options);
|
|
25
|
+
const machineDomain = (0, _getServerURL.getServerDomain)(server);
|
|
26
|
+
const httpPort = port + 1;
|
|
27
|
+
return {
|
|
28
|
+
httpsOptions,
|
|
29
|
+
machineDomain,
|
|
30
|
+
httpsPort: port,
|
|
31
|
+
httpPort,
|
|
32
|
+
httpsUrl: (0, _getServerURL.getServerUrl)({
|
|
33
|
+
domain: machineDomain,
|
|
34
|
+
port,
|
|
35
|
+
protocol: 'https'
|
|
36
|
+
}),
|
|
37
|
+
httpUrl: (0, _getServerURL.getServerUrl)({
|
|
38
|
+
domain: machineDomain,
|
|
39
|
+
port: httpPort,
|
|
40
|
+
protocol: 'http'
|
|
41
|
+
}),
|
|
42
|
+
isHttps: !!httpsOptions
|
|
43
|
+
};
|
|
44
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.libAlias = void 0;
|
|
7
|
+
// the reason for alias at the time was code tree shaking
|
|
8
|
+
// tree shaking was most compactable with ES module system
|
|
9
|
+
// FIXME: But there is a posiblity when these package does not have lib,
|
|
10
|
+
// app will work because of alias, But may be jest won't work because of not alais
|
|
11
|
+
// So need to think about use alais in jest
|
|
12
|
+
const libAlias = {
|
|
13
|
+
'@zohodesk/components/lib': '@zohodesk/components/es',
|
|
14
|
+
// '@zohodesk/zc-custom/lib': '@zohodesk/zc-custom/es',
|
|
15
|
+
'@zohodesk/dot/lib': '@zohodesk/dot/es',
|
|
16
|
+
'@zohodesk/i18n/lib': '@zohodesk/i18n/es',
|
|
17
|
+
'@zohodesk/icons/lib': '@zohodesk/icons/es',
|
|
18
|
+
'@zohodesk/normalizer/lib': '@zohodesk/normalizer/es',
|
|
19
|
+
'@zohodesk/perf-components/lib': '@zohodesk/perf-components/es',
|
|
20
|
+
'@zohodesk/perf-middleware/lib': '@zohodesk/perf-middleware/es',
|
|
21
|
+
'@zohodesk/permissions/lib': '@zohodesk/permissions/es',
|
|
22
|
+
'@zohodesk/platform-middleware/lib': '@zohodesk/platform-middleware/es',
|
|
23
|
+
'@zohodesk/react-dnd/lib': '@zohodesk/react-dnd/es',
|
|
24
|
+
'@zohodesk/router-middleware/lib': '@zohodesk/router-middleware/es',
|
|
25
|
+
'@zohodesk/storage/lib': '@zohodesk/storage/es',
|
|
26
|
+
'@zohodesk/svg/lib': '@zohodesk/svg/es',
|
|
27
|
+
'@zohodesk/timetracker/lib': '@zohodesk/timetracker/es',
|
|
28
|
+
'@zohodesk/variables/lib': '@zohodesk/variables/es',
|
|
29
|
+
'@zohodesk/virtualizer/lib': '@zohodesk/virtualizer/es'
|
|
30
|
+
};
|
|
31
|
+
exports.libAlias = libAlias;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.nameTemplates = nameTemplates;
|
|
7
|
+
// NOTE: these below code can be done in js,
|
|
8
|
+
// we did copy paste in order to aviod unnecessary confussion
|
|
9
|
+
const templates = {
|
|
10
|
+
js: ['js/[name].js', 'js/[name].[contenthash].js'],
|
|
11
|
+
chunkjs: ['js-chunks/[name].js', 'js-chunks/[name].[contenthash].js'],
|
|
12
|
+
i18njs: ['i18n-chunks/[locale]/[name].i18n.js', 'i18n-chunks/[locale]/[name].[chunkhash].i18n.js'],
|
|
13
|
+
i18nchunkjs: ['i18n-chunks/[locale]/[name].i18n.js', // 'i18n-chunks/[locale]/[name].[chunkhash].i18n.js'
|
|
14
|
+
'i18n-chunks/[locale]/[name].[contenthash].i18n.js'],
|
|
15
|
+
i18nmanifest: ['i18n-manifest.json', 'i18n-manifest.json'],
|
|
16
|
+
workerjs: ['js/[name].js', 'js/[name].[contenthash].js'],
|
|
17
|
+
css: ['css/[name].css', 'css/[name].[contenthash].css'],
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* NOTE: when you change (cssdir) this line it will have affect on Below files will be affected
|
|
21
|
+
* custom_plugins/RtlSplitPlugin/*
|
|
22
|
+
* pluginConfigs/configMiniCSSExtractPlugin.js
|
|
23
|
+
* pluginConfigs/configRtlCssPlugin.js
|
|
24
|
+
* */
|
|
25
|
+
cssdir: ['css/[name].[dir].css', 'css/[name].[contenthash].[dir].css'],
|
|
26
|
+
image: ['images/[name][ext]', 'images/[name].[contenthash][ext]'],
|
|
27
|
+
font: ['fonts/[name][ext]', 'fonts/[name].[contenthash][ext]'],
|
|
28
|
+
svg: ['fonts/[name][ext]', 'fonts/[name].[contenthash][ext]'],
|
|
29
|
+
audio: ['fonts/[name][ext]', 'fonts/[name].[contenthash][ext]'],
|
|
30
|
+
video: ['videos/[name][ext]', 'videos/[name].[contenthash][ext]']
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
function createNameTemplate(name, enableChunkHash) {
|
|
34
|
+
// const ext = `${enableChunkHash ? '.[hash:20]' : ''}[ext]`;
|
|
35
|
+
return enableChunkHash ? name[1] : name[0];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function nameTemplates(type, options) {
|
|
39
|
+
const {
|
|
40
|
+
enableChunkHash
|
|
41
|
+
} = options;
|
|
42
|
+
const tname = templates[type];
|
|
43
|
+
|
|
44
|
+
if (!tname) {
|
|
45
|
+
throw Error(`specifiyed type not valid Type: ${type}`);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return createNameTemplate(tname, enableChunkHash);
|
|
49
|
+
} // export function cssDirNameTemplate(dir, options) {
|
|
50
|
+
// return nameTemplates('cssdir', options).replace(/\[dir\]/g, dir);
|
|
51
|
+
// }
|
package/packages/client_build_tool/lib/shared/bundler/webpack/common/resourceBasedPublicPath.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.publicPathAsExpression = publicPathAsExpression;
|
|
7
|
+
exports.resourceBasedPublicPath = resourceBasedPublicPath;
|
|
8
|
+
|
|
9
|
+
// const publicPaths = {
|
|
10
|
+
// };
|
|
11
|
+
function resourceBasedPublicPath(resoruceType, options) {
|
|
12
|
+
return options.publicPath;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function publicPathAsExpression(resoruceType, options) {
|
|
16
|
+
if (resoruceType === 'i18n') {
|
|
17
|
+
return options.i18nChunkSplit.localeVarName;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return JSON.stringify(options.publicPath);
|
|
21
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.cssLoaders = cssLoaders;
|
|
7
|
+
|
|
8
|
+
var _getCSSLoaders = require("./getCSSLoaders");
|
|
9
|
+
|
|
10
|
+
function cssLoaders(options) {
|
|
11
|
+
return [{
|
|
12
|
+
test: /\.css$/,
|
|
13
|
+
// exclude: /\.module\.css$/,
|
|
14
|
+
use: (0, _getCSSLoaders.getCSSLoaders)(options)
|
|
15
|
+
}];
|
|
16
|
+
}
|
package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin"));
|
|
9
|
+
|
|
10
|
+
var _webpack = require("webpack");
|
|
11
|
+
|
|
12
|
+
var _readOptions = require("../../../schemas/readOptions");
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
const pluginName = 'CdnChangePlugin';
|
|
17
|
+
const MODULE_TYPE = 'css/mini-extract';
|
|
18
|
+
|
|
19
|
+
const isI18nFile = url => url.endsWith('.i18n.js');
|
|
20
|
+
|
|
21
|
+
const {
|
|
22
|
+
app: {
|
|
23
|
+
enableSMap
|
|
24
|
+
}
|
|
25
|
+
} = (0, _readOptions.getOptions)();
|
|
26
|
+
|
|
27
|
+
class CdnChangeRuntimePlugin extends _webpack.RuntimeModule {
|
|
28
|
+
constructor(compiler, {
|
|
29
|
+
variableName
|
|
30
|
+
}) {
|
|
31
|
+
super('cdn loading', 10);
|
|
32
|
+
console.log('cdn loading', variableName);
|
|
33
|
+
this.variableName = variableName;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
generate() {
|
|
37
|
+
console.log('changeing public pah');
|
|
38
|
+
return `${_webpack.RuntimeGlobals.getChunkCssFilename} = function(chunkId) {
|
|
39
|
+
const cssCdnUrl = window[${this.variableName}]/chunkId;
|
|
40
|
+
console.log(chunkId);
|
|
41
|
+
return cssCdnUrl;
|
|
42
|
+
}`;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
class CdnChangePlugin {
|
|
48
|
+
constructor(options) {
|
|
49
|
+
console.log("Insdie", options);
|
|
50
|
+
this.i18nTemplate = options.i18nTemplate || '{{__I18N_CDN__}}';
|
|
51
|
+
this.variableName = options.variableName || '__CSS_CDN__';
|
|
52
|
+
this.cssTemplate = options.cssTemplate || '{{__CSS_CDN__}}';
|
|
53
|
+
this.jsTemplate = options.jsTemplate || '{{__JS_CDN__}}';
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
apply(compiler) {
|
|
57
|
+
compiler.hooks.thisCompilation.tap(pluginName, compilation => {
|
|
58
|
+
const enabledChunks = new WeakSet();
|
|
59
|
+
|
|
60
|
+
const handler = (entryRuntimeChunk, set) => {
|
|
61
|
+
if (enabledChunks.has(entryRuntimeChunk)) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
enabledChunks.add(entryRuntimeChunk);
|
|
66
|
+
|
|
67
|
+
if (typeof chunkFilename === 'string' && /\[(full)?hash(:\d+)?\]/.test(chunkFilename)) {
|
|
68
|
+
set.add(_webpack.RuntimeGlobals.getFullHash);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
set.add(_webpack.RuntimeGlobals.getChunkCssFilename);
|
|
72
|
+
compilation.addRuntimeModule(entryRuntimeChunk, new CdnChangeRuntimePlugin(set, {
|
|
73
|
+
compiler,
|
|
74
|
+
variableName: this.variableName
|
|
75
|
+
}));
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
compilation.hooks.runtimeRequirementInTree.for(_webpack.RuntimeGlobals.ensureChunkHandlers).tap(pluginName, handler);
|
|
79
|
+
});
|
|
80
|
+
compiler.hooks.compilation.tap(pluginName, compilation => {
|
|
81
|
+
_htmlWebpackPlugin.default.getHooks(compilation).beforeAssetTagGeneration.tap(pluginName, (data, cb) => {
|
|
82
|
+
data.assets = Object.assign({}, data.assets, {
|
|
83
|
+
css: data.assets.css.map(css => `${this.cssTemplate}${css}`),
|
|
84
|
+
js: data.assets.js.map(js => {
|
|
85
|
+
if (enableSMap && !isI18nFile(js)) {
|
|
86
|
+
console.log("js file ==>", js);
|
|
87
|
+
js = js.replace('js/', `{{--js-smap}}js/`); //eslint-disable-line
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return `${isI18nFile(js) ? this.i18nTemplate : this.jsTemplate}${js}`;
|
|
91
|
+
})
|
|
92
|
+
});
|
|
93
|
+
cb && cb(null, data);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
var _default = CdnChangePlugin; // Cdn Change Plugin for runtime chunks???
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* the filename of the script part of the chunk
|
|
104
|
+
*/
|
|
105
|
+
// exports.getChunkScriptFilename = "__webpack_require__.u";
|
|
106
|
+
// /**
|
|
107
|
+
// * the filename of the css part of the chunk
|
|
108
|
+
// */
|
|
109
|
+
// exports.getChunkCssFilename = "__webpack_require__.k";
|
|
110
|
+
|
|
111
|
+
exports.default = _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# I18n Split Plugin ContributionGuide
|
|
2
|
+
we have modifyed mini-css-extract-plugin to sute our needs of i18n related extraction and downloading.
|
|
3
|
+
So In future may be when we need to update mini-css-extract-plugin Kindly cross check with this I18n Plugin as well.
|
|
4
|
+
|
|
5
|
+
Even not breaking change, may be just performacne update or feature update. addeding that to this plugin will be use full. Kindly consider it.
|
|
6
|
+
|
|
7
|
+
## Thing we Ignored
|
|
8
|
+
* we use webpack ast hook for adding I18nDependency. So we did not need `loader.js`
|
|
9
|
+
* we ignore order of import in single chunk since I18n going to be download as object.
|
|
10
|
+
we did not need it.
|
|
11
|
+
*
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _utils = require("./utils");
|
|
9
|
+
|
|
10
|
+
/* eslint-disable max-classes-per-file */
|
|
11
|
+
// import { I18nDependency } from './1I18nDependency';
|
|
12
|
+
const pluginName = 'I18nKeysIdentifer';
|
|
13
|
+
/**
|
|
14
|
+
* this plugin search the i18 keys and make it as I18nDependency.
|
|
15
|
+
* how it works?
|
|
16
|
+
* this plugin get jsResourceI18nKeys in constructor.
|
|
17
|
+
* we walk throught the js files AST
|
|
18
|
+
* if any string literal in that AST is in jsResourceI18nKeys then we consider that string as I18n key
|
|
19
|
+
* after the walk of AST we get some I18n keys
|
|
20
|
+
* then we make it as I18nDependency.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
class I18nKeysIdentifer {
|
|
24
|
+
constructor({
|
|
25
|
+
jsResourceI18nKeys
|
|
26
|
+
}, {
|
|
27
|
+
I18nDependency,
|
|
28
|
+
I18nModule
|
|
29
|
+
}) {
|
|
30
|
+
this.jsResourceI18nKeys = jsResourceI18nKeys;
|
|
31
|
+
this.I18nDependency = I18nDependency;
|
|
32
|
+
this.I18nModule = I18nModule;
|
|
33
|
+
this.modulesI18nKeysMap = {};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
defineConfigarationForI18nDependency(compilation) {
|
|
37
|
+
const {
|
|
38
|
+
I18nModule,
|
|
39
|
+
I18nDependency
|
|
40
|
+
} = this;
|
|
41
|
+
|
|
42
|
+
class I18nModuleFactory {
|
|
43
|
+
// eslint-disable-next-line class-methods-use-this
|
|
44
|
+
create({
|
|
45
|
+
dependencies: [dependency]
|
|
46
|
+
}, callback) {
|
|
47
|
+
callback(undefined, new I18nModule(dependency));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
compilation.dependencyFactories.set(I18nDependency, new I18nModuleFactory());
|
|
53
|
+
|
|
54
|
+
class I18nDependencyTemplate {
|
|
55
|
+
// eslint-disable-next-line class-methods-use-this
|
|
56
|
+
apply() {}
|
|
57
|
+
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
compilation.dependencyTemplates.set(I18nDependency, new I18nDependencyTemplate());
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
addI18nDependency(module, i18nKeys) {
|
|
64
|
+
const identifier = `i18n ${module.resource}`;
|
|
65
|
+
const dep = new this.I18nDependency({
|
|
66
|
+
identifier,
|
|
67
|
+
content: JSON.stringify(i18nKeys),
|
|
68
|
+
i18nKeys
|
|
69
|
+
}, module.context, 0);
|
|
70
|
+
module.addDependency(dep);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
apply(compiler) {
|
|
74
|
+
// const { splitChunks } = compiler.options.optimization;
|
|
75
|
+
// if (splitChunks) {
|
|
76
|
+
// if (splitChunks.defaultSizeTypes.includes('...')) {
|
|
77
|
+
// splitChunks.defaultSizeTypes.push(MODULE_TYPE);
|
|
78
|
+
// }
|
|
79
|
+
// }
|
|
80
|
+
compiler.hooks.thisCompilation.tap(pluginName, compilation => {
|
|
81
|
+
// this below hook was tapped for we use I18nDependency
|
|
82
|
+
// so we must define module factory for I18nDependency
|
|
83
|
+
// and we must define how it import statement look like I18nDependencyTemplate
|
|
84
|
+
this.defineConfigarationForI18nDependency(compilation);
|
|
85
|
+
});
|
|
86
|
+
compiler.hooks.normalModuleFactory.tap(pluginName, factory => {
|
|
87
|
+
// handler for parser
|
|
88
|
+
const handler = parser => {
|
|
89
|
+
parser.hooks.program.tap(pluginName, (ast, commmets) => {
|
|
90
|
+
const {
|
|
91
|
+
module
|
|
92
|
+
} = parser.state; //
|
|
93
|
+
|
|
94
|
+
if (!(module && /\.jsx?$/.test(module.resource))) {
|
|
95
|
+
return;
|
|
96
|
+
} // i18n grep proper contract regex
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
let i18nKeys = (0, _utils.collectI18nKeysfromAST)(ast, this.jsResourceI18nKeys);
|
|
100
|
+
i18nKeys = i18nKeys.concat( // i18n grep proper contract regex
|
|
101
|
+
(0, _utils.collectI18nKeysfromComments)(commmets, this.jsResourceI18nKeys));
|
|
102
|
+
|
|
103
|
+
if (i18nKeys.length) {
|
|
104
|
+
// console.log(
|
|
105
|
+
// 'i18nKeys.length',
|
|
106
|
+
// module.resource,
|
|
107
|
+
// i18nKeys.length < 5 ? i18nKeys : i18nKeys.length
|
|
108
|
+
// );
|
|
109
|
+
this.modulesI18nKeysMap[module.resource] = i18nKeys;
|
|
110
|
+
this.addI18nDependency(module, i18nKeys);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}; // this below hook was tapped for collect I18n Key from files and add as Deppenensy
|
|
114
|
+
// const factory = params.normalModuleFactory;
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
factory.hooks.parser.for('javascript/auto').tap(pluginName, handler);
|
|
118
|
+
factory.hooks.parser.for('javascript/dynamic').tap(pluginName, handler);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
} // I18nKeysIdentifer.isChunkHasI18n = function (chunk) {
|
|
123
|
+
// // eslint-disable-next-line no-restricted-syntax
|
|
124
|
+
// for (const module of chunk.modulesIterable) {
|
|
125
|
+
// // eslint-disable-next-line no-restricted-syntax
|
|
126
|
+
// for (const dep of module.dependencies) {
|
|
127
|
+
// if (dep instanceof I18nDependency) {
|
|
128
|
+
// return true;
|
|
129
|
+
// }
|
|
130
|
+
// }
|
|
131
|
+
// }
|
|
132
|
+
// return false;
|
|
133
|
+
// };
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
exports.default = I18nKeysIdentifer;
|