@zohodesk/react-cli 1.1.16-exp.4 → 1.1.16-exp.6
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/.eslintignore +7 -7
- package/.eslintrc.js +180 -180
- package/.prettierrc +6 -6
- package/.vscode/settings.json +24 -24
- package/Changelog.md +1019 -1019
- package/README.md +1435 -1445
- package/bin/cli.js +458 -466
- package/docs/ComposeMinification.md +13 -13
- package/docs/CustomChunks.md +29 -29
- package/docs/DevServerPort.md +39 -39
- package/docs/DevStart.md +18 -18
- package/docs/HoverActive.md +12 -12
- package/docs/InstallNode.md +28 -28
- package/docs/MarkdownParser.md +17 -17
- package/docs/ReactLive.md +13 -13
- package/docs/SelectorWeight.md +8 -8
- package/docs/TODOS.md +10 -10
- package/docs/ValueReplacer.md +86 -86
- package/docs/VariableConversion.md +729 -729
- package/docs/patternFiltering.md +56 -56
- package/docs/warnings_while_install.txt +35 -35
- package/files/eslintrc.js +62 -62
- package/files/prettierrc.js +3 -3
- package/lib/configs/webpack.css.umd.config.js +4 -4
- package/lib/configs/webpack.dev.config.js +0 -3
- package/lib/configs/webpack.docs.config.js +0 -2
- package/lib/configs/webpack.impact.config.js +0 -2
- package/lib/configs/webpack.prod.config.js +1 -4
- package/lib/loaderUtils/configsAssetsLoaders.js +33 -33
- package/lib/loaderUtils/getCSSLoaders.js +53 -57
- package/lib/loaders/workerLoader.js +9 -9
- package/lib/pluginUtils/getDevPlugins.js +5 -5
- package/lib/pluginUtils/getProdPlugins.js +5 -5
- package/lib/plugins/CustomAttributePlugin.md +35 -35
- package/lib/plugins/EFCPlugin.md +6 -6
- package/lib/plugins/I18NInjectIntoIndexPlugin.js +4 -4
- package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
- package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
- package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +8 -8
- package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
- package/lib/plugins/I18nSplitPlugin/README.md +25 -25
- package/lib/plugins/I18nSplitPlugin/index.js +57 -57
- package/lib/plugins/ResourceHintsPlugin.js +17 -17
- package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
- package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
- package/lib/plugins/SelectorPlugin.js +29 -29
- package/lib/plugins/ServiceWorkerPlugin.js +9 -9
- package/lib/plugins/TPHashMappingPlugin.js +4 -4
- package/lib/plugins/VariableConversionCollector.js +59 -59
- package/lib/plugins/utils/fileHandling.js +5 -6
- package/lib/plugins/variableConvertorUtils.js +9 -9
- package/lib/postcss-plugins/RTLSplitPlugin.js +10 -10
- package/lib/postcss-plugins/__test__/test1Input.css +38 -38
- package/lib/postcss-plugins/__test__/test1Output.css +38 -38
- package/lib/postcss-plugins/hoverActivePlugin.js +3 -3
- package/lib/schemas/index.js +2 -34
- package/lib/sh/pre-commit.sh +34 -34
- package/lib/sh/reportPublish.sh +45 -45
- package/lib/utils/buildstats.html +148 -148
- package/lib/utils/cssClassNameGenerate.js +13 -13
- package/lib/utils/object-manipulation.js +5 -5
- package/lib/utils/resultSchema.json +73 -73
- package/npm-shrinkwrap.json +33485 -14483
- package/npm8.md +9 -9
- package/package.json +123 -124
- package/packages/client_build_tool/lib/allCommandsConfigs.js +1 -3
- package/packages/client_build_tool/lib/{logger.js → buildToolLoggers.js} +5 -7
- package/packages/client_build_tool/lib/commands/build/commandExecutor.js +7 -3
- package/packages/client_build_tool/lib/commands/build/config.js +2 -2
- package/packages/client_build_tool/lib/commands/build/index.js +35 -0
- package/packages/client_build_tool/lib/commands/{start/optionsProcessor.js → build/optionsProcesser.js} +14 -14
- package/packages/client_build_tool/lib/commands/buildEs/commandExecutor.js +4 -20
- package/packages/client_build_tool/lib/commands/buildEs/config.js +2 -2
- package/packages/client_build_tool/lib/commands/buildLib/commandExecutor.js +4 -20
- package/packages/client_build_tool/lib/commands/buildLib/config.js +2 -2
- package/packages/client_build_tool/lib/commands/start/commandExecutor.js +1 -0
- package/packages/client_build_tool/lib/commands/start/config.js +2 -2
- 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 +16 -21
- package/packages/client_build_tool/lib/shared/bundler/webpack/common/decidePublicPath.js +3 -1
- package/packages/client_build_tool/lib/shared/bundler/webpack/common/nameTemplates.js +13 -32
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin.js +24 -15
- 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 +10 -10
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nKeysIdentifer.js +80 -20
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nSplit.md +95 -95
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/README.md +25 -25
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/createHash.js +5 -5
- 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 +14 -9
- 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 +374 -12
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/optionsHandler.js +0 -1
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateFileName.js +12 -6
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateHashHelpers.js +23 -23
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectI18nKeys.js +8 -11
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/propertiesUtils.js +12 -14
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +5 -4
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtlCssPlugin.js +17 -12
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtrSplit.md +34 -34
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/replaceCssDirTemplate.js +1 -13
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPlugin.js +124 -79
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/{UglifyCSSPlugin/index.js.js → UglifyCSSPlugin.js} +2 -2
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_postcss_loaders/ExcludePlugin.js +58 -0
- package/packages/client_build_tool/lib/shared/{postcss/custom_postcss_plugins → bundler/webpack/custom_postcss_loaders}/RTLSplitPlugin.js +10 -10
- package/packages/client_build_tool/lib/shared/bundler/webpack/devServerConfig.js +34 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/getCSSLoaders.js +12 -9
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/assetLoaders.js +2 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/babelLoaderConfig.js +10 -4
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configsAssetsLoaders.js +44 -44
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/cssClassNameGenerate.js +43 -19
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/getCssLoaderOptions.js +2 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaders/workerLoader.js +8 -8
- package/packages/client_build_tool/lib/shared/bundler/webpack/optimizationConfig.js +5 -9
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCdnChangePlugin.js +4 -13
- 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 +2 -5
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configHtmlWebpackPlugin.js +10 -38
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configI18nSplitPlugin.js +0 -6
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configProgressPlugin.js +2 -7
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configServiceWorkerPlugin.js +3 -25
- 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 +9 -18
- package/packages/client_build_tool/lib/shared/bundler/webpack/postcssPlugins.js +36 -0
- package/packages/client_build_tool/lib/shared/bundler/webpack/resolvers.js +12 -19
- package/packages/client_build_tool/lib/shared/bundler/webpack/splitChunksConfig.js +1 -117
- 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 +4 -7
- package/packages/client_build_tool/lib/shared/bundler/webpack/webpackConfig.js +13 -15
- package/packages/client_build_tool/lib/shared/commands-utlis/doBasicRequiermentCheck.js +16 -0
- package/packages/client_build_tool/lib/shared/{commands-utils → commands-utlis}/getCliPath.js +7 -8
- package/packages/client_build_tool/lib/shared/{commands-utils → commands-utlis}/index.js +3 -3
- package/packages/client_build_tool/lib/shared/commands-utlis/spanSync.js +35 -0
- package/packages/client_build_tool/lib/shared/constants.js +5 -17
- package/packages/client_build_tool/lib/shared/schemas/applyValuesToShema.js +37 -0
- package/packages/client_build_tool/lib/{schemas → shared/schemas}/cliArgsToObject.js +10 -12
- 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/{schemas → shared/schemas}/getNpmVersion.js +2 -3
- package/packages/client_build_tool/lib/{schemas → shared/schemas}/npmConfigToObject.js +9 -12
- package/packages/client_build_tool/lib/shared/schemas/oldDefaultConfigValues.js +480 -0
- package/packages/client_build_tool/lib/{schemas → shared/schemas}/readOptions.js +12 -11
- package/packages/client_build_tool/lib/{schemas/readOptionsForConfigFile.js → shared/schemas/readOptionsForPackageJson.js} +2 -18
- 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 +3 -4
- package/packages/client_build_tool/lib/shared/server/{corsHandling.js → corsHandleing.js} +12 -5
- package/packages/client_build_tool/lib/shared/server/getIp.js +3 -3
- package/packages/client_build_tool/lib/shared/server/httpsOptions.js +32 -25
- package/packages/client_build_tool/lib/shared/server/initialHTMLHandling.js +21 -54
- package/packages/client_build_tool/lib/shared/server/serveContextFiles.js +0 -1
- package/packages/client_build_tool/lib/shared/server/serverBywebpackDevMiddleware.js +10 -6
- package/packages/client_build_tool/lib/shared/server/startHttpServer.js +2 -2
- package/packages/client_build_tool/lib/shared/server/startHttpsServer.js +2 -6
- package/packages/client_build_tool/lib/shared/server/unwanted/devServerUtlis.js +1 -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 +7 -7
- package/packages/client_build_tool/lib/shared/server/urlConcat.js +10 -17
- package/postpublish.js +8 -8
- package/templates/app/.eslintrc.js +140 -140
- package/templates/app/README.md +12 -12
- package/templates/app/app/index.html +24 -24
- package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
- package/templates/app/app/properties/i18nkeys.json +3 -3
- package/templates/app/docs/all.html +69 -69
- package/templates/app/mockapi/index.js +18 -18
- package/templates/app/package.json +37 -37
- package/templates/app/src/actions/SampleActions/index.js +37 -37
- package/templates/app/src/actions/index.js +65 -65
- package/templates/app/src/appUrls.js +19 -19
- package/templates/app/src/components/Alert/Alert.js +134 -134
- package/templates/app/src/components/Alert/Alert.module.css +79 -79
- package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
- package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
- package/templates/app/src/components/Sample/Sample.module.css +11 -11
- package/templates/app/src/components/Sample/SampleList.js +61 -61
- package/templates/app/src/components/Slider/Slider.css +41 -41
- package/templates/app/src/components/Slider/Slider.js +55 -55
- package/templates/app/src/containers/AlertContainer/index.js +15 -15
- package/templates/app/src/containers/AppContainer/index.js +96 -96
- package/templates/app/src/containers/AppContainer/index.module.css +27 -27
- package/templates/app/src/containers/CustomMatch/index.js +65 -65
- package/templates/app/src/containers/DevTools/index.js +10 -10
- package/templates/app/src/containers/Header/index.js +67 -67
- package/templates/app/src/containers/Header/index.module.css +43 -43
- package/templates/app/src/containers/Redirect/index.js +63 -63
- package/templates/app/src/containers/Redirector/index.js +47 -47
- package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
- package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
- package/templates/app/src/historyChange.js +5 -5
- package/templates/app/src/index.html +10 -10
- package/templates/app/src/index.js +24 -24
- package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
- package/templates/app/src/reducers/alertData.js +11 -11
- package/templates/app/src/reducers/index.js +6 -6
- package/templates/app/src/reducers/samples.js +19 -19
- package/templates/app/src/store/configureStore.dev.js +51 -51
- package/templates/app/src/store/configureStore.js +5 -5
- package/templates/app/src/store/configureStore.prod.js +26 -26
- package/templates/app/src/util/Common.js +5 -5
- package/templates/app/src/util/RequestAPI.js +132 -132
- package/templates/docs/all.html +250 -250
- package/templates/docs/component.html +179 -179
- package/templates/docs/components.html +222 -222
- package/templates/docs/css/b.min.css +6 -6
- package/templates/docs/css/component.css +42 -42
- package/templates/docs/css/componentTest.css +6 -6
- package/templates/docs/css/hopscotch.css +585 -585
- package/templates/docs/css/markdown.css +202 -202
- package/templates/docs/css/style.css +988 -988
- package/templates/docs/impactReportTemplate.html +154 -154
- package/templates/docs/index.html +1664 -1664
- package/templates/docs/js/active-line.js +72 -72
- package/templates/docs/js/b.min.js +7 -7
- package/templates/docs/js/codemirror.js +9680 -9680
- package/templates/docs/js/designTokens.js +334 -334
- package/templates/docs/js/j.min.js +4 -4
- package/templates/docs/js/javascript.js +874 -874
- package/templates/docs/js/matchbrackets.js +145 -145
- package/docs/AutoPrefixer.md +0 -27
- package/lib/utils/autoprefixer.js +0 -52
- package/packages/client_build_tool/lib/commands/build/optionsProcessor.js +0 -45
- package/packages/client_build_tool/lib/commands/mockserver/commandExecutor.js +0 -43
- package/packages/client_build_tool/lib/commands/mockserver/config.js +0 -12
- package/packages/client_build_tool/lib/commands/start/postProcessor.js +0 -10
- package/packages/client_build_tool/lib/commands/start/preProcessor.js +0 -10
- package/packages/client_build_tool/lib/commands/template/commandExecutor.js +0 -32
- package/packages/client_build_tool/lib/commands/template/config.js +0 -12
- package/packages/client_build_tool/lib/commands/version/commandExecutor.js +0 -14
- package/packages/client_build_tool/lib/commands/version/config.js +0 -12
- package/packages/client_build_tool/lib/commands/version/errorHander.js +0 -10
- package/packages/client_build_tool/lib/index.js +0 -12
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/otherTestCases.test.js +0 -234
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/passingDifferentDataTypesToSchema.test.js +0 -103
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/passingEmptyObjects.test.js +0 -41
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertArray.test.js +0 -68
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertNumber.test.js +0 -68
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertObject.test.js +0 -141
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertString.test.js +0 -68
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertUndefinedAndNull.test.js +0 -132
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertArray.test.js +0 -71
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertNumber.test.js +0 -71
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertObject.test.js +0 -73
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertString.test.js +0 -71
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertUndefinedAndNull.test.js +0 -138
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/index.js +0 -34
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/isObject.js +0 -10
- package/packages/client_build_tool/lib/schemas/applyValuesToSchema/isValid.js +0 -14
- package/packages/client_build_tool/lib/schemas/defaultConfigValues.js +0 -244
- package/packages/client_build_tool/lib/schemas/defaultConfigValuesOnly.js +0 -161
- package/packages/client_build_tool/lib/schemas/deprecatedOptionsHandler.js +0 -67
- package/packages/client_build_tool/lib/schemas/giveDefaultValue.js +0 -18
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/Map.test.js +0 -15
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/MathAndNumberMethod.test.js +0 -30
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/ObjectAndModules.test.js +0 -47
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/Sets.test.js +0 -18
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/Symbol.test.js +0 -25
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/arrowFunction.test.js +0 -34
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/block-scoping.test.js +0 -18
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/classes.test.js +0 -55
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/defaultParameterValues.test.js +0 -18
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/extraFeatures.test.js +0 -82
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/forOf.test.js +0 -20
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/promise.test.js +0 -22
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/spreadOperator.test.js +0 -20
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/spreadParams.test.js +0 -24
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/stringAndArrayMethods.test.js +0 -67
- package/packages/client_build_tool/lib/shared/babel/__test__/es2015/variables.test.js +0 -21
- package/packages/client_build_tool/lib/shared/babel/__test__/es2016/array-includes.test.js +0 -13
- package/packages/client_build_tool/lib/shared/babel/__test__/es2016/exponentationOperator.test.js +0 -20
- package/packages/client_build_tool/lib/shared/babel/__test__/es2017/asyncAndawait.test.js +0 -23
- package/packages/client_build_tool/lib/shared/babel/__test__/es2017/object-entries.test.js +0 -24
- package/packages/client_build_tool/lib/shared/babel/__test__/es2017/object-getOwnproperties.test.js +0 -24
- package/packages/client_build_tool/lib/shared/babel/__test__/es2017/object-values.test.js +0 -24
- package/packages/client_build_tool/lib/shared/babel/__test__/es2017/stringMethods.test.js +0 -20
- package/packages/client_build_tool/lib/shared/babel/__test__/es2018/asynchronous-iterator.test.js +0 -19
- package/packages/client_build_tool/lib/shared/babel/__test__/es2018/object-rest-spread.test.js +0 -24
- package/packages/client_build_tool/lib/shared/babel/__test__/es2018/promise-finally.test.js +0 -26
- package/packages/client_build_tool/lib/shared/babel/__test__/es2018/regularExpressions.test.js +0 -35
- package/packages/client_build_tool/lib/shared/babel/__test__/es2019/Json.stringify.test.js +0 -21
- package/packages/client_build_tool/lib/shared/babel/__test__/es2019/arrayMethods.test.js +0 -31
- package/packages/client_build_tool/lib/shared/babel/__test__/es2019/object-fromEntriesMethod.test.js +0 -13
- package/packages/client_build_tool/lib/shared/babel/__test__/es2019/optionalCatchBinding.test.js +0 -23
- package/packages/client_build_tool/lib/shared/babel/__test__/es2019/revisedFunctionToString.test.js +0 -17
- package/packages/client_build_tool/lib/shared/babel/__test__/es2019/trim-startAndend-method.test.js +0 -20
- package/packages/client_build_tool/lib/shared/babel/__test__/es2020/AssignmentOperator.test.js +0 -27
- package/packages/client_build_tool/lib/shared/babel/__test__/es2020/Dynamic-Import.test.js +0 -19
- package/packages/client_build_tool/lib/shared/babel/__test__/es2020/NullishOperator.test.js +0 -15
- package/packages/client_build_tool/lib/shared/babel/__test__/es2020/bigInt.test.js +0 -13
- package/packages/client_build_tool/lib/shared/babel/__test__/es2020/chainOperator.test.js +0 -17
- package/packages/client_build_tool/lib/shared/babel/__test__/es2020/export-namespace-from.test.js +0 -12
- package/packages/client_build_tool/lib/shared/babel/__test__/es2020/promiseAllSettledMathod.test.js +0 -17
- package/packages/client_build_tool/lib/shared/babel/__test__/es2020/stringMatchMethod.test.js +0 -13
- package/packages/client_build_tool/lib/shared/babel/__test__/es2021/NumericSeparator.test.js +0 -23
- package/packages/client_build_tool/lib/shared/babel/__test__/es2021/logicalOperatorAssignments.test.js +0 -25
- package/packages/client_build_tool/lib/shared/babel/__test__/es2021/promiseAny.test.js +0 -16
- package/packages/client_build_tool/lib/shared/babel/__test__/es2021/stringReplaceMethod.test.js +0 -16
- package/packages/client_build_tool/lib/shared/babel/__test__/es2022/Array-atMethod.test.js +0 -13
- package/packages/client_build_tool/lib/shared/babel/__test__/es2022/ObjectKeyCheck.test.js +0 -27
- package/packages/client_build_tool/lib/shared/babel/__test__/es2022/ObjecthasOwnMethod.test.js +0 -19
- package/packages/client_build_tool/lib/shared/babel/__test__/es2022/RegexMatchIndices.test.js +0 -20
- package/packages/client_build_tool/lib/shared/babel/__test__/es2022/String-atMethod.test.js +0 -15
- package/packages/client_build_tool/lib/shared/babel/__test__/es2022/error.Cause.test.js +0 -23
- package/packages/client_build_tool/lib/shared/babel/__test__/es2022/keysCheckinPrivateFields.test.js +0 -27
- package/packages/client_build_tool/lib/shared/babel/__test__/es2022/privateMethodsAndFields.test.js +0 -23
- package/packages/client_build_tool/lib/shared/babel/__test__/es2022/staticFieldsAndMethod.test.js +0 -54
- package/packages/client_build_tool/lib/shared/babel/__test__/es2022/topLevelAwait.test.js +0 -11
- package/packages/client_build_tool/lib/shared/babel/__test__/es2022/weakRef.test.js +0 -17
- package/packages/client_build_tool/lib/shared/babel/__test__/utilities.js +0 -28
- package/packages/client_build_tool/lib/shared/babel/babelWebConfig.js +0 -49
- package/packages/client_build_tool/lib/shared/babel/runBabelForJSFile.js +0 -24
- package/packages/client_build_tool/lib/shared/bundler/webpack/common/modeUtils.js +0 -31
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/AddManifestJson/addFilesToManifestJson.js +0 -19
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/AddManifestJson/utilities.js +0 -18
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/EFCTemplatePlugin.js +0 -112
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nFilesEmitPlugin.js +0 -172
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nRuntimeDealerPlugin.js +0 -203
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/LocaleChunkAssetsStore.js +0 -73
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ModulesI18nKeysStore.js +0 -88
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/iterateModulesInChunk.js +0 -50
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/classesAndObject.test.js +0 -56
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/conditionalOperation.test.js +0 -154
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/function.test.js +0 -89
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/function2.test.js +0 -71
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/loop.test.js +0 -112
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/minifyBooleanValues.test.js +0 -43
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/minimizeVariableNames.test.js +0 -45
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/promise.test.js +0 -53
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/removeCommentsAndEmptySpace.test.js +0 -13
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/removeUnusedStrings.test.js +0 -14
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/variableDeclaration.test.js +0 -30
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/getChunkModules.js +0 -13
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/InitialHtmlPlugin.js +0 -54
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/__test__/addFilesNamesToManifestJson.test.js +0 -51
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/__test__/createInitialEntries.test.js +0 -95
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/__test__/removeHashFromFileName.test.js +0 -91
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/addFilesNamesToManifestJson.js +0 -24
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createInitialEntries.js +0 -17
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createManifestJson.js +0 -35
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/findInitialFileNames.js +0 -18
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/index.js +0 -44
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/removeHashFromFileName.js +0 -18
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ResourceHintsPlugin.js +0 -165
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/classHandling.js +0 -20
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/index.js +0 -78
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/selectorWeightPrefixAdder.js +0 -51
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/windowsModification.js +0 -16
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SourceMapPlugin/index.js +0 -38
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/__test__/uglifyCss1.test.js +0 -74
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/__test__/uglifycss.test.js +0 -64
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/__test__/utilities.js +0 -28
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/ErrorHandler.js +0 -62
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/index.js +0 -361
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/emitAsset.js +0 -14
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/getInitialAssetsFuncTemplate.js +0 -57
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/getInitialI18nAssetsArrayStr.js +0 -87
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/classesAndObject.test.js +0 -56
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/conditionalOperation.test.js +0 -154
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/function.test.js +0 -89
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/function2.test.js +0 -71
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/loop.test.js +0 -112
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/minifyBooleanValues.test.js +0 -43
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/minimizeVariableNames.test.js +0 -45
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/promise.test.js +0 -53
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/removeCommentsAndEmptySpace.test.js +0 -13
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/removeUnusedStrings.test.js +0 -14
- package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/variableDeclaration.test.js +0 -30
- package/packages/client_build_tool/lib/shared/bundler/webpack/entryConfig.js +0 -28
- package/packages/client_build_tool/lib/shared/bundler/webpack/externals.js +0 -13
- package/packages/client_build_tool/lib/shared/bundler/webpack/getSourceMapType.js +0 -10
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/checkIsPatternsMatchFilename.js +0 -52
- package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configPostCssLoader.js +0 -37
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configBundleAnalyzer.js +0 -40
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCSSMinifierPlugin.js +0 -24
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCopyPublicFolders.js +0 -80
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configEFCTemplatePlugin.js +0 -46
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configManifestJsonPlugin.js +0 -32
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configResourceHintsPlugin.js +0 -19
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configSelectorWeightPlugin.js +0 -28
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configSourceMapPlugin.js +0 -20
- package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configVariableConversionPlugin.js +0 -25
- package/packages/client_build_tool/lib/shared/bundler/webpack/statsConfig.js +0 -21
- package/packages/client_build_tool/lib/shared/bundler/webpack/utils/index.js +0 -26
- package/packages/client_build_tool/lib/shared/bundler/webpack/utils/updateArrayWithDefault.js +0 -18
- package/packages/client_build_tool/lib/shared/commands-utils/doBasicRequirementCheck.js +0 -17
- package/packages/client_build_tool/lib/shared/commands-utils/spawnSyncIO.js +0 -38
- package/packages/client_build_tool/lib/shared/fileUtils/copyFile.js +0 -38
- package/packages/client_build_tool/lib/shared/fileUtils/directoryIterator.js +0 -21
- package/packages/client_build_tool/lib/shared/fileUtils/watchRun.js +0 -100
- package/packages/client_build_tool/lib/shared/postcss/__test__/ignoreTestCases.test.js +0 -80
- package/packages/client_build_tool/lib/shared/postcss/__test__/postcss-rtl-all-cases.test.js +0 -119
- package/packages/client_build_tool/lib/shared/postcss/__test__/postcssRtl.spec.js +0 -34
- package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/EmptyPlugin.js +0 -21
- package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/constants.js +0 -10
- package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/handleIgnores.js +0 -66
- package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/index.js +0 -136
- package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/insertBefore.js +0 -32
- package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/isPreviouslyProcessed.js +0 -20
- package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/replaceUtils.js +0 -20
- package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/separateHoveredSelectorAndNormalSelector.js +0 -24
- package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/specialCases.js +0 -43
- package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/typeCheckUtils.js +0 -52
- package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/SelectorReplace.js +0 -90
- package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/ValueReplacer.js +0 -57
- package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/VariableModificationPlugin/index.js +0 -343
- package/packages/client_build_tool/lib/shared/postcss/filterPluginsAllowedForSpecficFile.js +0 -55
- package/packages/client_build_tool/lib/shared/postcss/getAllowedPostCssPlugins.js +0 -30
- package/packages/client_build_tool/lib/shared/postcss/getSpecificPostCssPlugin.js +0 -58
- package/packages/client_build_tool/lib/shared/postcss/runPostCssForCssFile.js +0 -37
- package/packages/client_build_tool/lib/shared/server/mockApiHandler.js +0 -60
- package/packages/client_build_tool/lib/shared/server/mockServer.js +0 -41
- package/packages/client_build_tool/lib/shared/utils/requireLocalOrGlobal.js +0 -81
- package/packages/client_build_tool/lib/shared/utils/versionPrint.js +0 -20
- package/packages/client_build_tool/node_modules/history/CHANGES.md +0 -395
- package/packages/client_build_tool/node_modules/history/DOMUtils.js +0 -3
- package/packages/client_build_tool/node_modules/history/ExecutionEnvironment.js +0 -3
- package/packages/client_build_tool/node_modules/history/LICENSE +0 -21
- package/packages/client_build_tool/node_modules/history/LocationUtils.js +0 -3
- package/packages/client_build_tool/node_modules/history/PathUtils.js +0 -3
- package/packages/client_build_tool/node_modules/history/README.md +0 -282
- package/packages/client_build_tool/node_modules/history/cjs/history.js +0 -933
- package/packages/client_build_tool/node_modules/history/cjs/history.min.js +0 -1
- package/packages/client_build_tool/node_modules/history/createBrowserHistory.js +0 -3
- package/packages/client_build_tool/node_modules/history/createHashHistory.js +0 -3
- package/packages/client_build_tool/node_modules/history/createMemoryHistory.js +0 -3
- package/packages/client_build_tool/node_modules/history/createTransitionManager.js +0 -3
- package/packages/client_build_tool/node_modules/history/es/DOMUtils.js +0 -7
- package/packages/client_build_tool/node_modules/history/es/ExecutionEnvironment.js +0 -7
- package/packages/client_build_tool/node_modules/history/es/LocationUtils.js +0 -7
- package/packages/client_build_tool/node_modules/history/es/PathUtils.js +0 -7
- package/packages/client_build_tool/node_modules/history/es/createBrowserHistory.js +0 -7
- package/packages/client_build_tool/node_modules/history/es/createHashHistory.js +0 -7
- package/packages/client_build_tool/node_modules/history/es/createMemoryHistory.js +0 -7
- package/packages/client_build_tool/node_modules/history/es/createTransitionManager.js +0 -7
- package/packages/client_build_tool/node_modules/history/es/warnAboutDeprecatedESMImport.js +0 -35
- package/packages/client_build_tool/node_modules/history/esm/history.js +0 -904
- package/packages/client_build_tool/node_modules/history/index.js +0 -7
- package/packages/client_build_tool/node_modules/history/package.json +0 -120
- package/packages/client_build_tool/node_modules/history/umd/history.js +0 -1059
- package/packages/client_build_tool/node_modules/history/umd/history.min.js +0 -1
- package/packages/client_build_tool/node_modules/history/warnAboutDeprecatedCJSRequire.js +0 -35
- package/result.json +0 -1
- package/unittest/index.html +0 -37
- /package/packages/client_build_tool/lib/shared/{commands-utils → commands-utlis}/log.js +0 -0
- /package/packages/client_build_tool/lib/shared/{commands-utils → commands-utlis}/readArgsFormCommandLine.js +0 -0
- /package/packages/client_build_tool/lib/shared/{commands-utils → commands-utlis}/readOptionFormCommandLine.js +0 -0
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.route = route;
|
|
7
|
-
exports.runCommand = runCommand;
|
|
8
7
|
|
|
9
8
|
var _fs = require("fs");
|
|
10
9
|
|
|
@@ -12,60 +11,56 @@ var _path = require("path");
|
|
|
12
11
|
|
|
13
12
|
var _allCommandsConfigs = _interopRequireDefault(require("./allCommandsConfigs"));
|
|
14
13
|
|
|
15
|
-
var
|
|
14
|
+
var _buildToolLoggers = require("./buildToolLoggers");
|
|
16
15
|
|
|
17
|
-
var _readOptions = require("./schemas/readOptions");
|
|
16
|
+
var _readOptions = require("./shared/schemas/readOptions");
|
|
18
17
|
|
|
19
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
19
|
|
|
21
|
-
function runCommand(commandConfig
|
|
20
|
+
function runCommand(commandConfig) {
|
|
21
|
+
const options = (0, _readOptions.getOptions)();
|
|
22
22
|
const {
|
|
23
23
|
dirname
|
|
24
24
|
} = commandConfig;
|
|
25
25
|
|
|
26
26
|
function runRespectiveFile(name, data) {
|
|
27
|
-
const commandExecutorPath = (0, _path.join)(dirname,
|
|
27
|
+
const commandExecutorPath = (0, _path.join)(dirname, name + ".js");
|
|
28
28
|
|
|
29
29
|
if ((0, _fs.existsSync)(commandExecutorPath)) {
|
|
30
|
-
// eslint-disable-next-line import/no-dynamic-require, global-require
|
|
31
30
|
const commandExecutor = require(commandExecutorPath);
|
|
32
31
|
|
|
33
32
|
return (commandExecutor[name] || commandExecutor.default)(data);
|
|
33
|
+
} else {
|
|
34
|
+
(0, _buildToolLoggers.debugLogger)("file not found", commandExecutorPath);
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
-
(0, _logger.verboseLogger)('file not found', commandExecutorPath);
|
|
37
|
-
return null;
|
|
38
36
|
}
|
|
39
37
|
|
|
40
|
-
const processedOption = runRespectiveFile(
|
|
41
|
-
runRespectiveFile(
|
|
38
|
+
const processedOption = runRespectiveFile("optionsProcesser", options) || options;
|
|
39
|
+
runRespectiveFile("deprecationHandler", processedOption); // runRespectiveFile("errorHandler", () => {
|
|
42
40
|
|
|
43
|
-
runRespectiveFile(
|
|
44
|
-
runRespectiveFile(
|
|
45
|
-
runRespectiveFile(
|
|
41
|
+
runRespectiveFile("preProcesser", processedOption);
|
|
42
|
+
runRespectiveFile("commandExecutor", processedOption);
|
|
43
|
+
runRespectiveFile("postProcesser", processedOption); // });
|
|
46
44
|
}
|
|
47
45
|
|
|
48
46
|
function route(option, args) {
|
|
49
47
|
// TODO: need to modify this log
|
|
50
|
-
(0,
|
|
51
|
-
|
|
48
|
+
(0, _buildToolLoggers.debugLogger)("the command was " + option, args);
|
|
52
49
|
const commandConfig = findCommandConfig(option);
|
|
53
50
|
|
|
54
51
|
if (commandConfig) {
|
|
55
52
|
try {
|
|
56
|
-
|
|
57
|
-
runCommand(commandConfig, options);
|
|
53
|
+
runCommand(commandConfig);
|
|
58
54
|
} catch (error) {
|
|
59
|
-
|
|
55
|
+
console.error(error);
|
|
60
56
|
}
|
|
61
57
|
} else {
|
|
62
58
|
// TODO: need to write proper error message
|
|
63
|
-
(0,
|
|
59
|
+
(0, _buildToolLoggers.warnLogger)("Un known command", option, "please check the document");
|
|
64
60
|
}
|
|
65
61
|
}
|
|
66
62
|
|
|
67
63
|
function findCommandConfig(option) {
|
|
68
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
69
64
|
for (const commandConfig of _allCommandsConfigs.default) {
|
|
70
65
|
if (commandConfig.name === option || commandConfig.alias.includes(option)) {
|
|
71
66
|
return commandConfig;
|
|
@@ -18,7 +18,9 @@ function modifiedServerOptions(options) {
|
|
|
18
18
|
const {
|
|
19
19
|
server
|
|
20
20
|
} = options;
|
|
21
|
-
const
|
|
21
|
+
const {
|
|
22
|
+
port
|
|
23
|
+
} = server;
|
|
22
24
|
const httpsOptions = (0, _httpsOptions.httpsOptionsWithUserFriendlyError)(options);
|
|
23
25
|
const machineDomain = (0, _getServerURL.getServerDomain)(server);
|
|
24
26
|
const httpPort = port + 1;
|
|
@@ -3,17 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.isI18nFile = void 0;
|
|
7
6
|
exports.nameTemplates = nameTemplates;
|
|
8
|
-
|
|
9
|
-
var _modeUtils = require("./modeUtils");
|
|
10
|
-
|
|
11
|
-
// nameTemplate.js
|
|
12
7
|
// NOTE: these below code can be done in js,
|
|
13
|
-
// we did copy paste in order to
|
|
14
|
-
// NOTE: array[0] is dev mode file templates and array[1] is prod mode file templates
|
|
8
|
+
// we did copy paste in order to aviod unnecessary confussion
|
|
15
9
|
const templates = {
|
|
16
|
-
html: ['index.html', 'index.[contenthash].html'],
|
|
17
10
|
js: ['js/[name].js', 'js/[name].[contenthash].js'],
|
|
18
11
|
chunkjs: ['js-chunks/[name].js', 'js-chunks/[name].[contenthash].js'],
|
|
19
12
|
i18njs: ['i18n-chunks/[locale]/[name].i18n.js', 'i18n-chunks/[locale]/[name].[chunkhash].i18n.js'],
|
|
@@ -23,11 +16,11 @@ const templates = {
|
|
|
23
16
|
workerjs: ['js/[name].js', 'js/[name].[contenthash].js'],
|
|
24
17
|
css: ['css/[name].css', 'css/[name].[contenthash].css'],
|
|
25
18
|
|
|
26
|
-
/**
|
|
27
|
-
* NOTE: when you change (cssdir) this line it will have affect on Below files will be affected
|
|
28
|
-
* custom_plugins/RtlSplitPlugin/*
|
|
29
|
-
* pluginConfigs/configMiniCSSExtractPlugin.js
|
|
30
|
-
* pluginConfigs/configRtlCssPlugin.js
|
|
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
|
|
31
24
|
* */
|
|
32
25
|
cssdir: ['css/[name].[dir].css', 'css/[name].[contenthash].[dir].css'],
|
|
33
26
|
image: ['images/[name][ext]', 'images/[name].[contenthash][ext]'],
|
|
@@ -37,34 +30,22 @@ const templates = {
|
|
|
37
30
|
video: ['videos/[name][ext]', 'videos/[name].[contenthash][ext]']
|
|
38
31
|
};
|
|
39
32
|
|
|
40
|
-
function createNameTemplate(name,
|
|
41
|
-
// const ext = `${
|
|
42
|
-
return
|
|
33
|
+
function createNameTemplate(name, enableChunkHash) {
|
|
34
|
+
// const ext = `${enableChunkHash ? '.[hash:20]' : ''}[ext]`;
|
|
35
|
+
return enableChunkHash ? name[1] : name[0];
|
|
43
36
|
}
|
|
44
37
|
|
|
45
38
|
function nameTemplates(type, options) {
|
|
46
39
|
const {
|
|
47
|
-
enableChunkHash
|
|
48
|
-
mode
|
|
40
|
+
enableChunkHash
|
|
49
41
|
} = options;
|
|
50
42
|
const tname = templates[type];
|
|
51
43
|
|
|
52
44
|
if (!tname) {
|
|
53
|
-
throw Error(`
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
let useHash = (0, _modeUtils.isProductionMode)(mode) || enableChunkHash;
|
|
57
|
-
|
|
58
|
-
if ((0, _modeUtils.isDevelopmentMode)(mode) && type === 'html') {
|
|
59
|
-
useHash = false;
|
|
45
|
+
throw Error(`specifiyed type not valid Type: ${type}`);
|
|
60
46
|
}
|
|
61
47
|
|
|
62
|
-
return createNameTemplate(tname,
|
|
48
|
+
return createNameTemplate(tname, enableChunkHash);
|
|
63
49
|
} // export function cssDirNameTemplate(dir, options) {
|
|
64
50
|
// return nameTemplates('cssdir', options).replace(/\[dir\]/g, dir);
|
|
65
|
-
// }
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const isI18nFile = url => url.endsWith('.i18n.js');
|
|
69
|
-
|
|
70
|
-
exports.isI18nFile = isI18nFile;
|
|
51
|
+
// }
|
package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin.js
CHANGED
|
@@ -9,12 +9,20 @@ var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin"));
|
|
|
9
9
|
|
|
10
10
|
var _webpack = require("webpack");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _readOptions = require("../../../schemas/readOptions");
|
|
13
13
|
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
const
|
|
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)();
|
|
18
26
|
|
|
19
27
|
class CdnChangeRuntimePlugin extends _webpack.RuntimeModule {
|
|
20
28
|
constructor(compiler, {
|
|
@@ -38,7 +46,7 @@ class CdnChangeRuntimePlugin extends _webpack.RuntimeModule {
|
|
|
38
46
|
|
|
39
47
|
class CdnChangePlugin {
|
|
40
48
|
constructor(options) {
|
|
41
|
-
|
|
49
|
+
console.log("Insdie", options);
|
|
42
50
|
this.i18nTemplate = options.i18nTemplate || '{{__I18N_CDN__}}';
|
|
43
51
|
this.variableName = options.variableName || '__CSS_CDN__';
|
|
44
52
|
this.cssTemplate = options.cssTemplate || '{{__CSS_CDN__}}';
|
|
@@ -55,7 +63,11 @@ class CdnChangePlugin {
|
|
|
55
63
|
}
|
|
56
64
|
|
|
57
65
|
enabledChunks.add(entryRuntimeChunk);
|
|
58
|
-
|
|
66
|
+
|
|
67
|
+
if (typeof chunkFilename === 'string' && /\[(full)?hash(:\d+)?\]/.test(chunkFilename)) {
|
|
68
|
+
set.add(_webpack.RuntimeGlobals.getFullHash);
|
|
69
|
+
}
|
|
70
|
+
|
|
59
71
|
set.add(_webpack.RuntimeGlobals.getChunkCssFilename);
|
|
60
72
|
compilation.addRuntimeModule(entryRuntimeChunk, new CdnChangeRuntimePlugin(set, {
|
|
61
73
|
compiler,
|
|
@@ -67,20 +79,17 @@ class CdnChangePlugin {
|
|
|
67
79
|
});
|
|
68
80
|
compiler.hooks.compilation.tap(pluginName, compilation => {
|
|
69
81
|
_htmlWebpackPlugin.default.getHooks(compilation).beforeAssetTagGeneration.tap(pluginName, (data, cb) => {
|
|
70
|
-
|
|
71
|
-
enableSMap
|
|
72
|
-
} = this;
|
|
73
|
-
data.assets = { ...data.assets,
|
|
82
|
+
data.assets = Object.assign({}, data.assets, {
|
|
74
83
|
css: data.assets.css.map(css => `${this.cssTemplate}${css}`),
|
|
75
84
|
js: data.assets.js.map(js => {
|
|
76
|
-
if (enableSMap && !
|
|
77
|
-
console.log(
|
|
85
|
+
if (enableSMap && !isI18nFile(js)) {
|
|
86
|
+
console.log("js file ==>", js);
|
|
78
87
|
js = js.replace('js/', `{{--js-smap}}js/`); //eslint-disable-line
|
|
79
88
|
}
|
|
80
89
|
|
|
81
|
-
return `${
|
|
90
|
+
return `${isI18nFile(js) ? this.i18nTemplate : this.jsTemplate}${js}`;
|
|
82
91
|
})
|
|
83
|
-
};
|
|
92
|
+
});
|
|
84
93
|
cb && cb(null, data);
|
|
85
94
|
});
|
|
86
95
|
});
|
|
@@ -90,8 +99,8 @@ class CdnChangePlugin {
|
|
|
90
99
|
|
|
91
100
|
var _default = CdnChangePlugin; // Cdn Change Plugin for runtime chunks???
|
|
92
101
|
|
|
93
|
-
/**
|
|
94
|
-
* the filename of the script part of the chunk
|
|
102
|
+
/**
|
|
103
|
+
* the filename of the script part of the chunk
|
|
95
104
|
*/
|
|
96
105
|
// exports.getChunkScriptFilename = "__webpack_require__.u";
|
|
97
106
|
// /**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -1,11 +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.
|
|
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
11
|
*
|
|
@@ -7,26 +7,67 @@ exports.default = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _utils = require("./utils");
|
|
9
9
|
|
|
10
|
-
var _LocaleChunkAssetsStore = require("./LocaleChunkAssetsStore");
|
|
11
|
-
|
|
12
10
|
/* eslint-disable max-classes-per-file */
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
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.
|
|
22
21
|
*/
|
|
23
22
|
|
|
24
23
|
class I18nKeysIdentifer {
|
|
25
24
|
constructor({
|
|
26
25
|
jsResourceI18nKeys
|
|
26
|
+
}, {
|
|
27
|
+
I18nDependency,
|
|
28
|
+
I18nModule
|
|
27
29
|
}) {
|
|
28
30
|
this.jsResourceI18nKeys = jsResourceI18nKeys;
|
|
29
|
-
this.
|
|
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);
|
|
30
71
|
}
|
|
31
72
|
|
|
32
73
|
apply(compiler) {
|
|
@@ -37,13 +78,15 @@ class I18nKeysIdentifer {
|
|
|
37
78
|
// }
|
|
38
79
|
// }
|
|
39
80
|
compiler.hooks.thisCompilation.tap(pluginName, compilation => {
|
|
40
|
-
this
|
|
41
|
-
|
|
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);
|
|
42
85
|
});
|
|
43
86
|
compiler.hooks.normalModuleFactory.tap(pluginName, factory => {
|
|
44
87
|
// handler for parser
|
|
45
88
|
const handler = parser => {
|
|
46
|
-
parser.hooks.program.tap(pluginName, (ast,
|
|
89
|
+
parser.hooks.program.tap(pluginName, (ast, commmets) => {
|
|
47
90
|
const {
|
|
48
91
|
module
|
|
49
92
|
} = parser.state; //
|
|
@@ -55,14 +98,19 @@ class I18nKeysIdentifer {
|
|
|
55
98
|
|
|
56
99
|
let i18nKeys = (0, _utils.collectI18nKeysfromAST)(ast, this.jsResourceI18nKeys);
|
|
57
100
|
i18nKeys = i18nKeys.concat( // i18n grep proper contract regex
|
|
58
|
-
(0, _utils.collectI18nKeysfromComments)(
|
|
101
|
+
(0, _utils.collectI18nKeysfromComments)(commmets, this.jsResourceI18nKeys));
|
|
59
102
|
|
|
60
103
|
if (i18nKeys.length) {
|
|
61
|
-
// console.log(
|
|
62
|
-
|
|
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);
|
|
63
111
|
}
|
|
64
112
|
});
|
|
65
|
-
}; // this below hook was tapped for collect I18n Key from files and add as
|
|
113
|
+
}; // this below hook was tapped for collect I18n Key from files and add as Deppenensy
|
|
66
114
|
// const factory = params.normalModuleFactory;
|
|
67
115
|
|
|
68
116
|
|
|
@@ -71,6 +119,18 @@ class I18nKeysIdentifer {
|
|
|
71
119
|
});
|
|
72
120
|
}
|
|
73
121
|
|
|
74
|
-
}
|
|
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
|
+
|
|
75
135
|
|
|
76
136
|
exports.default = I18nKeysIdentifer;
|
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
# I18n Split As Chunks Plugin
|
|
2
|
-
|
|
3
|
-
generaly we have manage our all I18n keys and values as language specific i18n files and then we download all i18n in initial page load.
|
|
4
|
-
|
|
5
|
-
### what is the problem with this?.
|
|
6
|
-
|
|
7
|
-
the problem is i18n file keep get's grown it will affect the the inital page load and critial rendering path.
|
|
8
|
-
So, We have decide to create a plugin for split i18n per chunk's of js vise.
|
|
9
|
-
|
|
10
|
-
### what is i18n split?
|
|
11
|
-
|
|
12
|
-
it is like code split for i18n.
|
|
13
|
-
we will collect i18n from js chunk and we will create separate i18n chunk per js chunk,
|
|
14
|
-
with this we already load Js chunks are on demand and now we also download i18n also ondemand with this the initial and forthere actions.
|
|
15
|
-
when js download's we will download i18n with it.
|
|
16
|
-
|
|
17
|
-
### How to we going to i18n split?
|
|
18
|
-
|
|
19
|
-
we will read the js chunk and collect I18n keys form it,
|
|
20
|
-
then we will create i18n chunk files with these used keys.
|
|
21
|
-
|
|
22
|
-
### how do you collect i18n keys from js files?
|
|
23
|
-
|
|
24
|
-
we will traverse the js file's AST (static analysis) and find i18 keys,
|
|
25
|
-
we will concider all string which is in jsResource file as i18n keys.
|
|
26
|
-
and you can tell dynamic i18n key by js comments,
|
|
27
|
-
Like Below:-
|
|
28
|
-
|
|
29
|
-
```js
|
|
30
|
-
fetch('tickets?view=view1').then(data => {
|
|
31
|
-
// I18n support.ticketsEmpty
|
|
32
|
-
// I18n support.viewNotFount
|
|
33
|
-
// I18n support.permissionDenied
|
|
34
|
-
let text = getI18nValue(data.i18nkey);
|
|
35
|
-
});
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### is there any posiblity for unwanted keys in some chunk?
|
|
39
|
-
|
|
40
|
-
Yes, there is two posiblity
|
|
41
|
-
|
|
42
|
-
1. js comment , if you write js comment but it is not needed then it will be add into i18n chunk
|
|
43
|
-
`To Resolve` we currently do not have perfect idea for this, But we can check this by chunk size limit.
|
|
44
|
-
`idea's will be welcome`
|
|
45
|
-
2. like we said "we will concider all string which is in jsResource file as i18n keys",
|
|
46
|
-
So if you use string not for i18n but it was in jsResource then it will be add into i18n chunk.
|
|
47
|
-
`To Resolve` this problem we can use some kinda prefix or something.
|
|
48
|
-
|
|
49
|
-
### how do we downlowd and give to app?
|
|
50
|
-
|
|
51
|
-
we have over write defualt webpack requireEnsure (every dynamic chunk requests are done by that function) function.
|
|
52
|
-
and we parlarly dowload i18n files. and we ask jsonFunction, to our plugin.
|
|
53
|
-
So we send i18nkeys , when it was download,
|
|
54
|
-
you must store all i18n keys, we give asycrnsly by that function download in that patticular.
|
|
55
|
-
so you must store and update (like append or assign) everytime that function call.
|
|
56
|
-
|
|
57
|
-
### how to use this feature?
|
|
58
|
-
|
|
59
|
-
to use this feature use have give the below oprtions
|
|
60
|
-
`package.json`
|
|
61
|
-
|
|
62
|
-
```json
|
|
63
|
-
{
|
|
64
|
-
/// ...some things
|
|
65
|
-
"react-cli": {
|
|
66
|
-
// ...some things
|
|
67
|
-
"i18n": {
|
|
68
|
-
"chunkSplitEnable": true,
|
|
69
|
-
"jsResource": "./deskapp/properties/JSResources.properties",
|
|
70
|
-
"localeVarName": "window.userInfo.langCode",
|
|
71
|
-
"jsonpFunc": "window.loadI18nChunk",
|
|
72
|
-
"templateLabel": "{{--user-locale}}", // this is for html template i18n file path locate template
|
|
73
|
-
"propertiesFolder": "./deskapp/properties"
|
|
74
|
-
}
|
|
75
|
-
// ...some things
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
<!-- not need below -->
|
|
81
|
-
<!--we have added new feature for css to write logic to how hover related css work in hoverhover and a
|
|
82
|
-
|
|
83
|
-
### is there any problems with static analysis?
|
|
84
|
-
Yes,
|
|
85
|
-
|
|
86
|
-
### how do we use dynamic i18n key?
|
|
87
|
-
|
|
88
|
-
and we will download i18n file with
|
|
89
|
-
|
|
90
|
-
and when js chunk download's then we will download i18n as need.
|
|
91
|
-
we all know in our app we loading i18n as one single big file for each locale(language).
|
|
92
|
-
we are going to split i18n as per js chunk, and when js chunk download's then we will download i18n as need.
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
-->
|
|
1
|
+
# I18n Split As Chunks Plugin
|
|
2
|
+
|
|
3
|
+
generaly we have manage our all I18n keys and values as language specific i18n files and then we download all i18n in initial page load.
|
|
4
|
+
|
|
5
|
+
### what is the problem with this?.
|
|
6
|
+
|
|
7
|
+
the problem is i18n file keep get's grown it will affect the the inital page load and critial rendering path.
|
|
8
|
+
So, We have decide to create a plugin for split i18n per chunk's of js vise.
|
|
9
|
+
|
|
10
|
+
### what is i18n split?
|
|
11
|
+
|
|
12
|
+
it is like code split for i18n.
|
|
13
|
+
we will collect i18n from js chunk and we will create separate i18n chunk per js chunk,
|
|
14
|
+
with this we already load Js chunks are on demand and now we also download i18n also ondemand with this the initial and forthere actions.
|
|
15
|
+
when js download's we will download i18n with it.
|
|
16
|
+
|
|
17
|
+
### How to we going to i18n split?
|
|
18
|
+
|
|
19
|
+
we will read the js chunk and collect I18n keys form it,
|
|
20
|
+
then we will create i18n chunk files with these used keys.
|
|
21
|
+
|
|
22
|
+
### how do you collect i18n keys from js files?
|
|
23
|
+
|
|
24
|
+
we will traverse the js file's AST (static analysis) and find i18 keys,
|
|
25
|
+
we will concider all string which is in jsResource file as i18n keys.
|
|
26
|
+
and you can tell dynamic i18n key by js comments,
|
|
27
|
+
Like Below:-
|
|
28
|
+
|
|
29
|
+
```js
|
|
30
|
+
fetch('tickets?view=view1').then(data => {
|
|
31
|
+
// I18n support.ticketsEmpty
|
|
32
|
+
// I18n support.viewNotFount
|
|
33
|
+
// I18n support.permissionDenied
|
|
34
|
+
let text = getI18nValue(data.i18nkey);
|
|
35
|
+
});
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### is there any posiblity for unwanted keys in some chunk?
|
|
39
|
+
|
|
40
|
+
Yes, there is two posiblity
|
|
41
|
+
|
|
42
|
+
1. js comment , if you write js comment but it is not needed then it will be add into i18n chunk
|
|
43
|
+
`To Resolve` we currently do not have perfect idea for this, But we can check this by chunk size limit.
|
|
44
|
+
`idea's will be welcome`
|
|
45
|
+
2. like we said "we will concider all string which is in jsResource file as i18n keys",
|
|
46
|
+
So if you use string not for i18n but it was in jsResource then it will be add into i18n chunk.
|
|
47
|
+
`To Resolve` this problem we can use some kinda prefix or something.
|
|
48
|
+
|
|
49
|
+
### how do we downlowd and give to app?
|
|
50
|
+
|
|
51
|
+
we have over write defualt webpack requireEnsure (every dynamic chunk requests are done by that function) function.
|
|
52
|
+
and we parlarly dowload i18n files. and we ask jsonFunction, to our plugin.
|
|
53
|
+
So we send i18nkeys , when it was download,
|
|
54
|
+
you must store all i18n keys, we give asycrnsly by that function download in that patticular.
|
|
55
|
+
so you must store and update (like append or assign) everytime that function call.
|
|
56
|
+
|
|
57
|
+
### how to use this feature?
|
|
58
|
+
|
|
59
|
+
to use this feature use have give the below oprtions
|
|
60
|
+
`package.json`
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
/// ...some things
|
|
65
|
+
"react-cli": {
|
|
66
|
+
// ...some things
|
|
67
|
+
"i18n": {
|
|
68
|
+
"chunkSplitEnable": true,
|
|
69
|
+
"jsResource": "./deskapp/properties/JSResources.properties",
|
|
70
|
+
"localeVarName": "window.userInfo.langCode",
|
|
71
|
+
"jsonpFunc": "window.loadI18nChunk",
|
|
72
|
+
"templateLabel": "{{--user-locale}}", // this is for html template i18n file path locate template
|
|
73
|
+
"propertiesFolder": "./deskapp/properties"
|
|
74
|
+
}
|
|
75
|
+
// ...some things
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
<!-- not need below -->
|
|
81
|
+
<!--we have added new feature for css to write logic to how hover related css work in hoverhover and a
|
|
82
|
+
|
|
83
|
+
### is there any problems with static analysis?
|
|
84
|
+
Yes,
|
|
85
|
+
|
|
86
|
+
### how do we use dynamic i18n key?
|
|
87
|
+
|
|
88
|
+
and we will download i18n file with
|
|
89
|
+
|
|
90
|
+
and when js chunk download's then we will download i18n as need.
|
|
91
|
+
we all know in our app we loading i18n as one single big file for each locale(language).
|
|
92
|
+
we are going to split i18n as per js chunk, and when js chunk download's then we will download i18n as need.
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
-->
|