@zohodesk/client_build_tool 0.0.1-0.exp.0.0.3

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.
Files changed (259) hide show
  1. package/.babelrc +12 -0
  2. package/.lintstagedrc +3 -0
  3. package/.vscode/settings.json +5 -0
  4. package/CHANGELOG.md +84 -0
  5. package/ConfigurationDocumentation.md +567 -0
  6. package/ContributionGuide.md +2 -0
  7. package/NOTES-Dec12.md +12 -0
  8. package/README.md +184 -0
  9. package/README_backup.md +100 -0
  10. package/TODO.md +35 -0
  11. package/cli.js +31 -0
  12. package/docs/BabelCustomizations.md +55 -0
  13. package/docs/CSSCustomPluginsDocumentation.md +71 -0
  14. package/docs/CustomChunksConfiguration.md +0 -0
  15. package/docs/EFCFileTemplate.md +0 -0
  16. package/docs/MockApi.md +61 -0
  17. package/docs/NameTemplateUtility.md +93 -0
  18. package/docs/ServiseWorkerTemplate.md +0 -0
  19. package/docs/SupportedBrowserVersions.md +61 -0
  20. package/helpDocs/check.js +7 -0
  21. package/helpDocs/commmands/build.md +0 -0
  22. package/helpDocs/commmands/start.md +0 -0
  23. package/helpDocs/examples/buildWithContentHash.md +0 -0
  24. package/helpDocs/examples/startDevServer.md +0 -0
  25. package/helpDocs/examples/startWithMockAPI.md +0 -0
  26. package/helpDocs/node18-env.md +30 -0
  27. package/helpDocs/troubleshootings/NewMachineSetup.md +71 -0
  28. package/helpDocs/troubleshootings/README.md +9 -0
  29. package/helpDocs/troubleshootings/hg_install.sh +18 -0
  30. package/helpDocs/troubleshootings/newMachineMac.sh +86 -0
  31. package/helpDocs/troubleshootings/newMachineUbundu.bash +84 -0
  32. package/lib/allCommandsConfigs.js +25 -0
  33. package/lib/commands/build/commandExecutor.js +17 -0
  34. package/lib/commands/build/config.js +12 -0
  35. package/lib/commands/build/optionsProcessor.js +35 -0
  36. package/lib/commands/build/preProcessor.js +12 -0
  37. package/lib/commands/buildEs/commandExecutor.js +33 -0
  38. package/lib/commands/buildEs/config.js +12 -0
  39. package/lib/commands/buildEs/preProcessor.js +17 -0
  40. package/lib/commands/buildLib/commandExecutor.js +33 -0
  41. package/lib/commands/buildLib/config.js +12 -0
  42. package/lib/commands/buildLib/preProcessor.js +17 -0
  43. package/lib/commands/mockserver/commandExecutor.js +43 -0
  44. package/lib/commands/mockserver/config.js +12 -0
  45. package/lib/commands/pre_process/commandExecutor.js +18 -0
  46. package/lib/commands/pre_process/config.js +12 -0
  47. package/lib/commands/start/commandExecutor.js +12 -0
  48. package/lib/commands/start/config.js +12 -0
  49. package/lib/commands/start/optionsProcessor.js +30 -0
  50. package/lib/commands/start/preProcessor.js +12 -0
  51. package/lib/commands/template/commandExecutor.js +28 -0
  52. package/lib/commands/template/config.js +12 -0
  53. package/lib/commands/version/commandExecutor.js +14 -0
  54. package/lib/commands/version/config.js +12 -0
  55. package/lib/commandsRouter.js +74 -0
  56. package/lib/index.js +12 -0
  57. package/lib/logger.js +34 -0
  58. package/lib/schemas/applyValuesToSchema/index.js +34 -0
  59. package/lib/schemas/applyValuesToSchema/isObject.js +10 -0
  60. package/lib/schemas/applyValuesToSchema/isValid.js +14 -0
  61. package/lib/schemas/cliArgsToObject.js +39 -0
  62. package/lib/schemas/defaultConfigValues.js +393 -0
  63. package/lib/schemas/defaultConfigValuesOnly.js +200 -0
  64. package/lib/schemas/deprecatedOptionsHandler.js +67 -0
  65. package/lib/schemas/getNpmVersion.js +22 -0
  66. package/lib/schemas/giveDefaultValue.js +18 -0
  67. package/lib/schemas/npmConfigToObject.js +35 -0
  68. package/lib/schemas/readOptions.js +87 -0
  69. package/lib/schemas/readOptionsForConfigFile.js +42 -0
  70. package/lib/shared/babel/addDefaultPlugins.js +15 -0
  71. package/lib/shared/babel/babelWebConfig.js +54 -0
  72. package/lib/shared/babel/babel_plugins/removeAttributesPlugin.js +23 -0
  73. package/lib/shared/babel/getBabelPlugin.js +42 -0
  74. package/lib/shared/babel/runBabelForJSFile.js +24 -0
  75. package/lib/shared/babel/runBabelForTsFile.js +30 -0
  76. package/lib/shared/bundler/webpack/common/decidePublicPath.js +57 -0
  77. package/lib/shared/bundler/webpack/common/hashUtils.js +20 -0
  78. package/lib/shared/bundler/webpack/common/libAlias.js +31 -0
  79. package/lib/shared/bundler/webpack/common/modeUtils.js +39 -0
  80. package/lib/shared/bundler/webpack/common/nameTemplates.js +105 -0
  81. package/lib/shared/bundler/webpack/common/resourceBasedPublicPath.js +21 -0
  82. package/lib/shared/bundler/webpack/configCustomLoaders.js +10 -0
  83. package/lib/shared/bundler/webpack/cssLoaders.js +16 -0
  84. package/lib/shared/bundler/webpack/custom_plugins/BundleIntegrityReport/index.js +83 -0
  85. package/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin/index.js +119 -0
  86. package/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin/webpackCustomJsUrlLoader.js +46 -0
  87. package/lib/shared/bundler/webpack/custom_plugins/CustomScriptLoadingPlugin.js +109 -0
  88. package/lib/shared/bundler/webpack/custom_plugins/EFCTemplatePlugin.js +112 -0
  89. package/lib/shared/bundler/webpack/custom_plugins/I18nNumericIndexPlugin/I18nNumericIndexHtmlInjectorPlugin.js +47 -0
  90. package/lib/shared/bundler/webpack/custom_plugins/I18nNumericIndexPlugin/I18nNumericIndexPlugin.js +190 -0
  91. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ContributionGuide.md +11 -0
  92. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nFilesEmitPlugin.js +174 -0
  93. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nKeysIdentifer.js +76 -0
  94. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nRuntimeDealerPlugin.js +223 -0
  95. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nSplit.md +95 -0
  96. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/LocaleChunkAssetsStore.js +73 -0
  97. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ModulesI18nKeysStore.js +88 -0
  98. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/README.md +25 -0
  99. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/constants.js +29 -0
  100. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/createHash.js +24 -0
  101. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nLoadingRuntimeModule.js +76 -0
  102. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/index.js +39 -0
  103. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/iterateModulesInChunk.js +50 -0
  104. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/optionsHandler.js +68 -0
  105. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/pathCreator.js +23 -0
  106. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/readI18nValues.js +29 -0
  107. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateFileName.js +43 -0
  108. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateHashHelpers.js +77 -0
  109. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectAstKeys.js +98 -0
  110. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectI18nKeys.js +66 -0
  111. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/getChunkModules.js +13 -0
  112. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/hashUtils.js +19 -0
  113. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/index.js +31 -0
  114. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/propertiesUtils.js +129 -0
  115. package/lib/shared/bundler/webpack/custom_plugins/InitialHtmlPlugin.js +60 -0
  116. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/addFilesNamesToManifestJson.js +30 -0
  117. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createInitialEntries.js +23 -0
  118. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createManifestJson.js +35 -0
  119. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/findInitialFileNames.js +18 -0
  120. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/index.js +46 -0
  121. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/removeHashFromFileName.js +18 -0
  122. package/lib/shared/bundler/webpack/custom_plugins/RTLSplitPlugin.js +1 -0
  123. package/lib/shared/bundler/webpack/custom_plugins/ResourceHintsPlugin.js +193 -0
  124. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +62 -0
  125. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtlCssPlugin.js +84 -0
  126. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtrSplit.md +34 -0
  127. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/replaceCssDirTemplate.js +27 -0
  128. package/lib/shared/bundler/webpack/custom_plugins/RuntimeResourceCleanup/index.js +73 -0
  129. package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/classHandling.js +20 -0
  130. package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/index.js +78 -0
  131. package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/selectorWeightPrefixAdder.js +51 -0
  132. package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/windowsModification.js +16 -0
  133. package/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPlugin.js +120 -0
  134. package/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPluginUtils.js +13 -0
  135. package/lib/shared/bundler/webpack/custom_plugins/SourceMapPlugin/index.js +71 -0
  136. package/lib/shared/bundler/webpack/custom_plugins/TPHashMappingPlugin/addHashToFilePath.js +22 -0
  137. package/lib/shared/bundler/webpack/custom_plugins/TPHashMappingPlugin/index.js +55 -0
  138. package/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/index.js.js +49 -0
  139. package/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/ErrorHandler.js +62 -0
  140. package/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/index.js +362 -0
  141. package/lib/shared/bundler/webpack/custom_plugins/custom_attribute_plugin/index.js +80 -0
  142. package/lib/shared/bundler/webpack/custom_plugins/emitAsset.js +14 -0
  143. package/lib/shared/bundler/webpack/custom_plugins/getInitialAssetsFuncTemplate.js +57 -0
  144. package/lib/shared/bundler/webpack/custom_plugins/getInitialI18nAssetsArrayStr.js +87 -0
  145. package/lib/shared/bundler/webpack/defaultVendorPatternList.js +13 -0
  146. package/lib/shared/bundler/webpack/devtoolConfig.js +13 -0
  147. package/lib/shared/bundler/webpack/entryConfig.js +28 -0
  148. package/lib/shared/bundler/webpack/externals.js +17 -0
  149. package/lib/shared/bundler/webpack/getCSSLoaders.js +29 -0
  150. package/lib/shared/bundler/webpack/getFilenameFromModule.js +24 -0
  151. package/lib/shared/bundler/webpack/jsLoaders.js +30 -0
  152. package/lib/shared/bundler/webpack/loaderConfigs/assetLoaders.js +12 -0
  153. package/lib/shared/bundler/webpack/loaderConfigs/babelLoaderConfig.js +18 -0
  154. package/lib/shared/bundler/webpack/loaderConfigs/checkIsPatternsMatchFilename.js +56 -0
  155. package/lib/shared/bundler/webpack/loaderConfigs/configHtmlTemplateLoader.js +18 -0
  156. package/lib/shared/bundler/webpack/loaderConfigs/configPostCssLoader.js +37 -0
  157. package/lib/shared/bundler/webpack/loaderConfigs/configWebWorkerLoader.js +21 -0
  158. package/lib/shared/bundler/webpack/loaderConfigs/configsAssetsLoaders.js +86 -0
  159. package/lib/shared/bundler/webpack/loaderConfigs/cssClassNameGenerate.js +65 -0
  160. package/lib/shared/bundler/webpack/loaderConfigs/getCssLoaderOptions.js +21 -0
  161. package/lib/shared/bundler/webpack/loaderConfigs/i18nIdReplaceLoaderConfig.js +94 -0
  162. package/lib/shared/bundler/webpack/loaders/i18nIdReplaceLoader.js +201 -0
  163. package/lib/shared/bundler/webpack/loaders/miniCssFallBackLoader.js +7 -0
  164. package/lib/shared/bundler/webpack/loaders/workerLoader.js +133 -0
  165. package/lib/shared/bundler/webpack/optimizationConfig.js +56 -0
  166. package/lib/shared/bundler/webpack/outputConfig.js +38 -0
  167. package/lib/shared/bundler/webpack/pluginConfigs/configBundleAnalyzer.js +40 -0
  168. package/lib/shared/bundler/webpack/pluginConfigs/configBundleIntegrityReport.js +36 -0
  169. package/lib/shared/bundler/webpack/pluginConfigs/configCSSMinifierPlugin.js +28 -0
  170. package/lib/shared/bundler/webpack/pluginConfigs/configCdnChangePlugin.js +27 -0
  171. package/lib/shared/bundler/webpack/pluginConfigs/configCopyPublicFolders.js +63 -0
  172. package/lib/shared/bundler/webpack/pluginConfigs/configCustomAttributesPlugin.js +20 -0
  173. package/lib/shared/bundler/webpack/pluginConfigs/configCustomScriptLoadingStrategyPlugin.js +76 -0
  174. package/lib/shared/bundler/webpack/pluginConfigs/configEFCTemplatePlugin.js +46 -0
  175. package/lib/shared/bundler/webpack/pluginConfigs/configEnvVariables.js +51 -0
  176. package/lib/shared/bundler/webpack/pluginConfigs/configHtmlWebpackPlugin.js +56 -0
  177. package/lib/shared/bundler/webpack/pluginConfigs/configI18nNumericIndexPlugin.js +113 -0
  178. package/lib/shared/bundler/webpack/pluginConfigs/configI18nSplitPlugin.js +41 -0
  179. package/lib/shared/bundler/webpack/pluginConfigs/configIgnorePlugin.js +16 -0
  180. package/lib/shared/bundler/webpack/pluginConfigs/configManifestJsonPlugin.js +44 -0
  181. package/lib/shared/bundler/webpack/pluginConfigs/configMiniCSSExtractPlugin.js +24 -0
  182. package/lib/shared/bundler/webpack/pluginConfigs/configProgressPlugin.js +24 -0
  183. package/lib/shared/bundler/webpack/pluginConfigs/configResourceHintsPlugin.js +21 -0
  184. package/lib/shared/bundler/webpack/pluginConfigs/configRtlCssPlugin.js +27 -0
  185. package/lib/shared/bundler/webpack/pluginConfigs/configRuntimeResourceCleanup.js +31 -0
  186. package/lib/shared/bundler/webpack/pluginConfigs/configSelectorWeightPlugin.js +28 -0
  187. package/lib/shared/bundler/webpack/pluginConfigs/configServiceWorkerPlugin.js +40 -0
  188. package/lib/shared/bundler/webpack/pluginConfigs/configSourceMapPlugin.js +20 -0
  189. package/lib/shared/bundler/webpack/pluginConfigs/configTPHashMappingPlugin.js +32 -0
  190. package/lib/shared/bundler/webpack/pluginConfigs/configVariableConversionPlugin.js +25 -0
  191. package/lib/shared/bundler/webpack/plugins.js +77 -0
  192. package/lib/shared/bundler/webpack/resolvers.js +82 -0
  193. package/lib/shared/bundler/webpack/splitChunksConfig.js +116 -0
  194. package/lib/shared/bundler/webpack/statsConfig.js +30 -0
  195. package/lib/shared/bundler/webpack/tsLoaders.js +17 -0
  196. package/lib/shared/bundler/webpack/utils/index.js +31 -0
  197. package/lib/shared/bundler/webpack/utils/object-manipulation.js +87 -0
  198. package/lib/shared/bundler/webpack/utils/updateArrayWithDefault.js +34 -0
  199. package/lib/shared/bundler/webpack/webpackBuild.js +27 -0
  200. package/lib/shared/bundler/webpack/webpackConfig.js +58 -0
  201. package/lib/shared/commands-utils/doBasicRequirementCheck.js +17 -0
  202. package/lib/shared/commands-utils/getCliPath.js +39 -0
  203. package/lib/shared/commands-utils/index.js +29 -0
  204. package/lib/shared/commands-utils/log.js +13 -0
  205. package/lib/shared/commands-utils/readArgsFormCommandLine.js +11 -0
  206. package/lib/shared/commands-utils/readOptionFormCommandLine.js +11 -0
  207. package/lib/shared/commands-utils/spawnSyncIO.js +38 -0
  208. package/lib/shared/constants.js +48 -0
  209. package/lib/shared/fileUtils/copyFile.js +38 -0
  210. package/lib/shared/fileUtils/directoryIterator.js +21 -0
  211. package/lib/shared/fileUtils/watchRun.js +112 -0
  212. package/lib/shared/postcss/custom_postcss_plugins/EmptyPlugin.js +21 -0
  213. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/constants.js +10 -0
  214. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/handleIgnores.js +66 -0
  215. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/index.js +136 -0
  216. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/insertBefore.js +32 -0
  217. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/isPreviouslyProcessed.js +20 -0
  218. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/replaceUtils.js +20 -0
  219. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/separateHoveredSelectorAndNormalSelector.js +24 -0
  220. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/specialCases.js +43 -0
  221. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/typeCheckUtils.js +52 -0
  222. package/lib/shared/postcss/custom_postcss_plugins/RTLSplitPlugin.js +139 -0
  223. package/lib/shared/postcss/custom_postcss_plugins/SelectorReplace.js +90 -0
  224. package/lib/shared/postcss/custom_postcss_plugins/ValueReplacer.js +57 -0
  225. package/lib/shared/postcss/custom_postcss_plugins/VariableModificationPlugin/index.js +347 -0
  226. package/lib/shared/postcss/filterPluginsAllowedForSpecficFile.js +55 -0
  227. package/lib/shared/postcss/getAllowedPostCssPlugins.js +30 -0
  228. package/lib/shared/postcss/getSpecificPostCssPlugin.js +58 -0
  229. package/lib/shared/postcss/runPostCssForCssFile.js +37 -0
  230. package/lib/shared/pre_process/runPreProcess.js +58 -0
  231. package/lib/shared/server/configWebpackDevMiddleware.js +41 -0
  232. package/lib/shared/server/corsHandling.js +30 -0
  233. package/lib/shared/server/getIp.js +30 -0
  234. package/lib/shared/server/getServerURL.js +36 -0
  235. package/lib/shared/server/httpsOptions.js +46 -0
  236. package/lib/shared/server/initExpressApp.js +19 -0
  237. package/lib/shared/server/initialHTMLHandling.js +99 -0
  238. package/lib/shared/server/mockApiHandler.js +67 -0
  239. package/lib/shared/server/mockServer.js +41 -0
  240. package/lib/shared/server/serveContextFiles.js +27 -0
  241. package/lib/shared/server/serverBywebpackDevMiddleware.js +35 -0
  242. package/lib/shared/server/startHttpServer.js +26 -0
  243. package/lib/shared/server/startHttpsServer.js +38 -0
  244. package/lib/shared/server/unwanted/addHttp2Server.js +41 -0
  245. package/lib/shared/server/unwanted/configWebpackDevMiddleware.js +44 -0
  246. package/lib/shared/server/unwanted/mockApiSupport.js +19 -0
  247. package/lib/shared/server/unwanted/websocketMockSetup.js +48 -0
  248. package/lib/shared/server/urlConcat.js +32 -0
  249. package/lib/shared/utils/requireLocalOrGlobal.js +81 -0
  250. package/lib/shared/utils/utils.js +1 -0
  251. package/lib/shared/utils/versionPrint.js +20 -0
  252. package/npm-shrinkwrap.json +5657 -0
  253. package/package.json +64 -0
  254. package/polyfillForOldNodeVersion.js +10 -0
  255. package/templates/app/README.MD +30 -0
  256. package/templates/app/package.json +12 -0
  257. package/templates/library/README.MD +28 -0
  258. package/templates/library/package.json +11 -0
  259. package/templates/wms/index.html +43 -0
package/.babelrc ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "presets": [
3
+ [
4
+ "@babel/preset-env",
5
+ {
6
+ "targets": {
7
+ "node": "18"
8
+ }
9
+ }
10
+ ]
11
+ ]
12
+ }
package/.lintstagedrc ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "*.{test,tests,spec,specs}.js": "eslint --fix"
3
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "cSpell.words": [
3
+ "mockapi"
4
+ ]
5
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,84 @@
1
+ # Changelog and Release Notes
2
+ # v0.0.10 (12-05-2025)
3
+ **Feature:-**
4
+ - `alias` support for `build:es` and `build:lib`
5
+ - Add babel-plugin-module-resolver dependencies
6
+ - Modify getBabelPlugin to include module resolver with aliases
7
+
8
+ **Bug Fix:-**
9
+ - Enhance runBabelForTSFile to handle both .tsx and .ts file extensions
10
+ - Update mockApiHandler to ensure mock function is called correctly
11
+
12
+ **Change:-**
13
+ - Refactor defaultConfigValues.js to include cli options for enableRTLSplit
14
+
15
+ **Feature:-**
16
+ - externals was added to Prevent bundling of certain imported packages and retrieve these external dependencies at runtime.
17
+ - to use externals, we use the following pattern in `app > externals` :
18
+
19
+ For example
20
+ ```
21
+ externals: {
22
+ <key> : <value>
23
+ }
24
+ ```
25
+
26
+ ## v0.0.6 (4-09-2023)
27
+
28
+ **Feature:-**
29
+ - Generating bundle integrity report json file for the build assets only in production mode. To use this feature we need to add `stats > enable` or cli flags `enable_stats`.
30
+ - Added Resource Cleanup plugin to cleanup resource retained by build tool. this plugin is controlled by efc flag resourcecleanup flag.
31
+ - added support for using regex expression to get group of chunks chunkId via Resource Hint plugin prefetch/preload hook.
32
+ only will be activate when `resourceHints` => `allowPrefetchingMultipleChunks` as `true`
33
+ - added support for glob pattern for custom chunks split logic.
34
+ - added options to split chunks base config in the key `app` => `customChunksBaseConfig` as object
35
+
36
+ **Change:-**
37
+ - i18n name not generated issue fix.
38
+ - public path not correctly set issue fix.
39
+ - changing plugin hook stages in i18nRuntimePlugin and sourceMapPlugin
40
+ ## v0.0.5 (6-08-2023)
41
+
42
+ **Changes:--**
43
+ - Typo fix in i18nRuntimeDealerPlugin.js
44
+ - fixing some bugs in resolvers.js file
45
+
46
+ ## v0.0.3 (1-08-2023)
47
+
48
+ **Changes:--**
49
+ - `devtool` default value changed from `hidden-cheap-source-map` to `source-map`
50
+ - unwanted files deleted from build
51
+
52
+ **Issue Fix:--**
53
+ - The issue with the source map not being created in the build has been fixed."
54
+
55
+
56
+ ## v0.0.2 (28-04-2023)
57
+
58
+ **Features:-**
59
+
60
+ - `devModeContentHashAllowedTypes` support added for some project there will be a need for hash even though they run dev mode. for details [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/3.0.0/packages/client_build_tool/ConfigurationDocumentation.md#devModeContentHashAllowedTypes)
61
+ - `devLikeHash` support for disable content hash for file names in production mode. for details [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/3.0.0/packages/client_build_tool/ConfigurationDocumentation.md#devLikeHash)
62
+ - `disableReactDevWarning` disable react dev warning such as prop-type warnings will be removed in dev mode build or server. for details [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/3.0.0/packages/client_build_tool/ConfigurationDocumentation.md#disableReactDevWarning) can be enabled via `--disable_react_dev_warning` too.
63
+ - `statsLogConfig` support to customize default webpack log after build finished. for details [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/3.0.0/packages/client_build_tool/ConfigurationDocumentation.md#statsLogConfig) can be enabled via `--disable_react_dev_warning` too.
64
+ - `enableChunkHash` renamed as `enableFileNameHashing`
65
+
66
+ - `pre_processor` command to run the preprocessor.js file.preProcessor runs in build, start, buildEs, buildLib commands bu default. and we have watch mode support as well with the option (`-w`)
67
+ - `createSeparateSmap` flag `source_map_enable` renamed as `enable_smap`
68
+ - `removeAttribute` option changes as `babelCustomizations.removeAttribute`
69
+ - `removePropTypes` support for remove the prop types package in the output build.
70
+ - `devConsoleExclude` support for remove the _console statements_ such as _console.log_, _console.warn_ in the output build.
71
+ - `manifestJson` default value set as false.
72
+ - `customAttributes` support for add attributes to html, link , script tag in the output build.
73
+
74
+
75
+ ## v0.0.1 (18-04-2023)
76
+
77
+ First Release
78
+ **Features:-**
79
+
80
+ - 'start' command to run react app
81
+ - 'build' command to create build for react app
82
+ - 'build:lib' command to create lib for react library
83
+ - 'build:es' command to create es for react library
84
+ - 'templates' command to create es for react library
@@ -0,0 +1,567 @@
1
+ # Configuration Documentation
2
+
3
+ The following documentation provides an overview of the configuration options available in the Client Build Tool (CBT) and their default values. You can customize these options to suit your project's requirements.
4
+
5
+ > You can specify your configuration in either `package.json` file under Key `react-cli` or in `cbt.config.js` file under the `config` export (`cbt.config.js` is default config file you can change config file by `--config_file=<your-config-file>`).
6
+
7
+ ## Global Configuration
8
+
9
+ ### context
10
+
11
+ > Type: (string)
12
+
13
+ Specifies the context of the application. The default value is `'app'`.
14
+ <br>When using your dev url will work with this.
15
+ http://localhost:9090/app
16
+
17
+ You can change this with cli option `--context`, Example: `--context=my-app`.
18
+
19
+ ### devtool
20
+
21
+ > Type: (string)
22
+
23
+ Specifies the devtool option for source mapping. The default value is `'hidden-cheap-source-map'`. you can refer more value form webpack document.
24
+
25
+ ### enableFileNameHashing
26
+
27
+ > Type: (boolean)
28
+
29
+ Specifies whether to enable chunk hash for file names. The default value is `false`.
30
+
31
+ You can change this via cli option `--enable_hash`,
32
+
33
+ ### statsLogConfig
34
+
35
+ > Type: (string | object)
36
+
37
+ to customize default webpack log after build finished.
38
+
39
+ You can change this via cli option `--enable_hash`,
40
+
41
+ ### devModeContentHashAllowedTypes
42
+
43
+ > Type: (object)
44
+
45
+ > NOTE: this feature enabled from v 0.0.2
46
+
47
+ In some cases or project there will be a need for hash even though they run dev mode. this option enables that feature.
48
+ Mostly reason for this is multiple assets have same name. Example two different Image have same name.
49
+ It was type of object you can specify which type of asset needs to be as hash in dev mode.
50
+ Example: (below config is default)
51
+
52
+ ```json
53
+ {
54
+ "image": true,
55
+ "font": true,
56
+ "svg": true,
57
+ "audio": true,
58
+ "video": true
59
+ }
60
+ ```
61
+
62
+ ### devLikeHash
63
+
64
+ > Type: (boolean)
65
+
66
+ > NOTE: this feature enabled from v 0.0.2
67
+
68
+ Specifies whether to disable chunk hash for file names in production mode. The default value is `false`.
69
+ Use case: in some projects there is a need for run production build in dev server for testing. this option will provide that feature
70
+
71
+ You can change this via cli option `--dev_like_hash`,
72
+
73
+ ### disableReactDevWarning
74
+
75
+ > Type: (boolean)
76
+
77
+ > NOTE: this feature enabled from v 0.0.2
78
+
79
+ Specifies whether to disable react dev warning such as prop-type warnings will be removed in dev mode build or server.
80
+
81
+ You can change this via cli option `--disable_react_dev_warning`,
82
+
83
+ ### bundleAnalyze
84
+
85
+ > Type: (boolean)
86
+
87
+ Specifies whether to generate bundle analysis reports. The default value is `false`.
88
+ When enabled `report.html` will be created. that report.html will have an interactive grid visualization of the contents of all your bundles. for more https://www.npmjs.com/package/webpack-bundle-analyzer we internally using this.
89
+
90
+ You can change this via cli option `--bundle_analyze`.
91
+
92
+ ### enableMockReplace
93
+
94
+ > Type: (boolean)
95
+
96
+ Specifies whether to enable mock replacement in `index.html` for random `dir` and random `locale`. when you enable RTL split or i18n split (your see configuration for rtl and i18n later). The default value is `false`.
97
+
98
+ You can change this via cli option `--enable_mock_replace`.
99
+
100
+ ### noPublicPath
101
+
102
+ > Type: (boolean)
103
+
104
+ Specifies whether to exclude the public path from asset URLs. The default value is `false`.
105
+ With set as `true` in final output domain will not be added only relative path will used for download resources like js, css ...etc.
106
+
107
+ You can change this via cli option `--no_public_path`.
108
+
109
+ ### output
110
+
111
+ > Type: (string)
112
+
113
+ Specifies the output directory for the build or bundled assets. The default value is `'build'`.
114
+ this option is for specify output folder path, where bundled assets placed or will be generated.
115
+
116
+ You can change this via cli option `--output`.
117
+
118
+ ### mode
119
+
120
+ > Type: (string)
121
+
122
+ Specifies the mode for the application build. Mode are either `dev` or `prod` for devServer or Build. The default value is `null` indicating that the mode will be determined by the build tool or framework. Which means for devServer default value will be `dev` and for Build default value will be `prod`.
123
+
124
+ You can change this via cli option `--mode=dev`.
125
+
126
+ ### printProgress
127
+
128
+ > Type: (boolean)
129
+
130
+ Specifies whether to print build progress information. The default value is `false`.
131
+ This is only for debugging purposes.
132
+
133
+ You can change this via cli option `--print_progress`.
134
+
135
+ ## Server Configuration
136
+
137
+ ### server.httpsCerts
138
+
139
+ > Type: (string)
140
+
141
+ Specifies the path to the HTTPS certificates used by the server. The default value is `'@zohodesk-private/client_dev_cert'`.
142
+
143
+ ### server.host
144
+
145
+ > Type: (string)
146
+
147
+ Specifies the hostname for the server. The default value is the result of the `hostname()` function.
148
+
149
+ ### server.port
150
+
151
+ > Type: (number)
152
+
153
+ Specifies the port number on which the server will listen. The default value is `9090`.
154
+
155
+ You can change this via cli option `--port=9090`.
156
+
157
+ ### server.domain
158
+
159
+ > Type: (string)
160
+
161
+ Specifies the domain for the server. The default value is `'tsi'`.
162
+
163
+ You can change this via cli option `--domain=tsi`.
164
+
165
+ ### server.disableContextURL
166
+
167
+ > Type: (boolean)
168
+
169
+ Specifies whether to disable the context URL feature. The default value is `false`.
170
+
171
+ ## Mock Server Configuration
172
+
173
+ ### mockServer.enable
174
+
175
+ > Type: (boolean)
176
+
177
+ Specifies whether the mock server functionality is enabled or disabled. The default value is `false`.
178
+
179
+ You can change this via cli option `--enable_mock`.
180
+
181
+ ### mockServer.separateSeverPort
182
+
183
+ > Type: (number)
184
+
185
+ Specifies the separate server port for the mock API server. The default value is `null`.
186
+
187
+ If this option specified with port, then mock server has to be run separately.
188
+ like this `cbt mock_server` more details [here]()
189
+
190
+ You can change this via cli option `--mock_port=5000`.
191
+
192
+ ### mockServer.disableNodemon
193
+
194
+ > Type: (boolean)
195
+
196
+ Specifies whether to disable nodemon for the mock server. The default value is `false`.
197
+
198
+ You can change this via cli option `--disable_nodemon`.
199
+
200
+ ### mockServer.mockEntryFile
201
+
202
+ > Type: (string)
203
+
204
+ Specifies the entry file for the mock API server. The default value is `'mockapi/index.js'`.
205
+
206
+ ### mockServer.mockPrefix
207
+
208
+ > Type: (string)
209
+
210
+ Specifies the prefix for the mock API routes. The default value is `'/api'`.
211
+
212
+ You can change this via cli option `--mock_prefix=/api`.
213
+
214
+ ## CSS Configuration
215
+
216
+ ### css.classNameOptions.customizations
217
+
218
+ > Type: (array)
219
+
220
+ Specifies an array of customizations for generating CSS class names. Each customization rule is represented as an object with the following properties:
221
+
222
+ - `enable` (boolean): Specifies whether the customization rule is enabled or disabled.
223
+ - `blob` (string): Specifies the pattern for generating class names.
224
+ - `patterns` (array): Specifies the file patterns to which the customization rule should be applied.
225
+
226
+ ### css.classNameOptions.classNamePrefix
227
+
228
+ > Type: (string)
229
+
230
+ Specifies the prefix to be added to all generated class names. The default value is `'zd'`.
231
+
232
+ ### css.plugins
233
+
234
+ > Type: (object)
235
+
236
+ Specifies the configuration options for PostCSS plugins. Each plugin is represented as a key-value pair, where the key is the plugin name and the value is an object containing plugin-specific options.
237
+
238
+ For more details [here](docs/CSSCustomPluginsDocumentation.md)
239
+
240
+ ### css.customPlugins
241
+
242
+ > Type: (array)
243
+
244
+ Specifies an array of custom CSS plugins to be used in the build process. you can specify which ever postcss plugin in this array.
245
+
246
+ ## Internationalization (i18n) Configuration
247
+
248
+ ### i18nChunkSplit.chunkSplitEnable
249
+
250
+ > Type: (boolean)
251
+
252
+ Specifies whether to enable chunk splitting for internationalization. The default value is `false`.
253
+
254
+ You can change this via cli option `--i18n_split`.
255
+
256
+ ### i18nChunkSplit.disableDefault
257
+
258
+ > Type: (boolean)
259
+
260
+ Specifies whether to disable the default internationalization chunk. The default value is `false`.
261
+
262
+ ### i18nChunkSplit.templateLabel
263
+
264
+ > Type: (string)
265
+
266
+ Specifies the template label for internationalization chunk splitting in Initial HTML file . The default value is `'{{--user-locale}}'`.
267
+
268
+ ### i18nChunkSplit.localeVarName
269
+
270
+ > Type: (string)
271
+
272
+ Specifies the variable name to store the user's locale. The default value is `'document.documentElement.lang'`.
273
+
274
+ ### i18nChunkSplit.jsonpFunc
275
+
276
+ > Type: (string)
277
+
278
+ Specifies the JavaScript function name for loading internationalization chunks. The default value is `'console.log'`.
279
+
280
+ ### i18nChunkSplit.jsResource
281
+
282
+ > Type: (string)
283
+
284
+ Specifies the JavaScript resource file for internationalization chunks. The default value is `null`.
285
+
286
+ ### i18nChunkSplit.propertiesFolder
287
+
288
+ > Type: (string)
289
+
290
+ Specifies the folder containing the properties files for internationalization chunks. The default value is `null`.
291
+
292
+ ## Public Folders Configuration
293
+
294
+ ### publicFolders
295
+
296
+ > Type: (array)
297
+
298
+ Specifies the public folders to be copied to the build output directory. The value is an array of file paths and objects representing source and target paths.
299
+
300
+ - **source** (string): Specifies the relative path of the source folder that contains the public assets. The source path should be relative to the location of the CBT configuration file.
301
+
302
+ - **target** (string): Specifies the relative path of the target folder where the public assets will be copied in the build output directory. The target path should also be relative to the location of the CBT configuration file.
303
+
304
+ - **toType** (string): Specifies the type of asset being copied. The value can be `'dir'` for a directory or `'file'` for a single file. This property helps CBT determine how to handle the asset during the copying process.
305
+
306
+ For example, the default configuration specifies that the `'public'` folder should be copied to the same location (`'public'`) in the build output directory, and the asset being copied is a directory (`'dir'`).
307
+
308
+ You can add additional entries to the `defaultPublicFolders` array to include multiple public folders in your project. Each entry should follow the same structure as described above, providing the appropriate source, target, and toType values for each folder you want to include.
309
+
310
+ Please note that the source path should be specified as a relative path, not an absolute path. Relative paths help ensure the portability and flexibility of the build process across different environments and systems.
311
+
312
+ By configuring the `publicFolders` array, you can ensure that the specified public folders and their contents are copied to the appropriate location in the build output directory, making them accessible to your application during runtime.
313
+
314
+ ## Application Configuration
315
+
316
+ ### app.entryFile
317
+
318
+ > Type: (string)
319
+
320
+ Specifies the entry file for the application. The default value is `'src/index.js'`.
321
+
322
+ You can change this with cli option `--entry`, Example: `--entry=src/index.js`.
323
+
324
+ ## Resolve Configuration Documentation
325
+
326
+ ### resolve
327
+
328
+ > Type: (object)
329
+
330
+ Specifies the configuration options allows you to configure module resolution and aliases for your project.
331
+
332
+ ### resolve.preferLocalFirst
333
+
334
+ > Type: (boolean)
335
+
336
+ Specifies whether local modules should take precedence over globally installed modules during module resolution. When set to `true`, local modules will be prioritized.(CBT will prioritize local modules over globally installed ones.) The default value is `false`.
337
+
338
+ ### resolve.defaultAlias
339
+
340
+ > Type: (boolean)
341
+
342
+ Specifies whether to use the default alias configuration. When set to `true`, CBT applies default alias rules to enhance module resolution. The default value is `true`.
343
+
344
+ ### resolve.moduleResolvePath
345
+
346
+ > Type: (string)
347
+
348
+ Specifies the path to resolve modules. The default value is `''`. This option sets the base path for resolving module imports.
349
+ When empty string given we use default packages that are provided By CBT.
350
+ When some package name given we first search for it locally then we will check for globally. So When you use this option you will have an option that use global packages that are use full in mono repo packages.
351
+
352
+ > NOTE: Currently lerna --hoist not tested But we will added it in future.
353
+
354
+ You can change this with cli option `--module_resolve_path`
355
+
356
+ > NOTE: If you do not need default packages form CBT you can set this option to `'node_modules'`.
357
+
358
+ ### resolve.alias
359
+
360
+ > Type: (object)
361
+
362
+ Allows you to define custom aliases for module resolution. Each key-value pair in the `alias` object represents an alias mapping, where the key is the original module path and the value is the replacement module path.
363
+
364
+ You can modify the provided configuration to suit your specific project requirements. For example, you can add more aliases, change the module resolution path, or adjust the preferences for local and global module resolution.
365
+
366
+ By customizing the `resolve` configuration, you can control how modules are resolved and provide alternative paths for module imports, enhancing the flexibility and customization of your project's module resolution process.
367
+
368
+ Examples will be separate document.
369
+
370
+ > Note that the `resolve` configuration is specific to module resolution and does not directly impact the build process. It helps the build tool locate and resolve modules correctly during the bundling or transpilation process.
371
+
372
+ ## HTML Template Configuration
373
+
374
+ ### htmlTemplate.templateFile
375
+
376
+ > Type: (string)
377
+
378
+ Specifies the HTML template file for the application. The default value is `'src/index.html'`.
379
+
380
+ You can change this with cli option `--initial_html=src/index.html`
381
+
382
+ ### htmlTemplate.minify
383
+
384
+ > Type: (null|Object)
385
+
386
+ Specifies options for minifying the HTML template. The default value is `null`.
387
+
388
+ For more [details](https://github.com/jantimon/html-webpack-plugin#minification)
389
+
390
+ ### htmlTemplate.inject
391
+
392
+ > Type: (boolean)
393
+
394
+ Specifies whether to inject assets into the HTML template. The default value is `true`.
395
+
396
+ ## Embedded Functional Components (EFC) Configuration
397
+
398
+ ### efc.hasEFC
399
+
400
+ > Type: (boolean)
401
+
402
+ Specifies whether the application has Embedded Functional Components. The default value is `false`.
403
+
404
+ You can change this with cli option `--enable_efc`
405
+
406
+ ### efc.entryPointName
407
+
408
+ > Type: (string)
409
+
410
+ Specifies the entry point name for the Embedded Functional Components. The default value is `'efc'`.
411
+
412
+ ### efc.entryFile
413
+
414
+ > Type: (string)
415
+
416
+ Specifies the entry file for the Embedded Functional Components. The default value is `'src/efc.js'`.
417
+
418
+ You can change this with cli option `--efc_entry=src/efc.js`
419
+
420
+ ### efc.version
421
+
422
+ > Type: (string)
423
+
424
+ Specifies the version of the Embedded Functional Components. The default value is `'v1'`.
425
+
426
+ You can change this with cli option `--efc_version=v1`
427
+
428
+ ### efc.createSDkFile
429
+
430
+ > Type: (boolean)
431
+
432
+ Specifies whether to create the Embedded Functional Components SDK file. The default value is `false`.
433
+
434
+ You can change this with cli option `--create_efc_sdk`
435
+
436
+ ### efc.templateFilePath
437
+
438
+ > Type: (string)
439
+
440
+ Specifies the template file path for the Embedded Functional Components. The default value is `'efcTemplate.js'`.
441
+
442
+ For more [details](docs/EFCFileTemplate.md)
443
+
444
+ ### efc.outputFile
445
+
446
+ > Type: (string)
447
+
448
+ Specifies the output file name for the Embedded Functional Components SDK. The default value is `'efc-sdk-[version].js'`.
449
+
450
+ You can change this with cli option `--efc_output=efc-sdk-[version].js`
451
+
452
+ ## Babel Customizations
453
+
454
+ The `babelCustomizations` object in the provided code represents a set of customizations that can be applied to the Babel configuration within the context of the Client Build Tool (CBT). These customizations allow you to fine-tune how JavaScript code is transpiled and transformed during the build process.
455
+ The documentation for the individual customizations [details](docs/BabelCustomizations.md)
456
+
457
+ ## Webpack Configuration
458
+
459
+ ### webpackPlugins
460
+
461
+ > Type: (array)
462
+
463
+ Specifies an array of custom Webpack plugins to be used in the build process.
464
+
465
+ ## Vendor Patterns Configuration
466
+
467
+ ### vendorPatterns
468
+
469
+ > Type: (array)
470
+
471
+ Specifies an array of patterns for vendor files. These pattern can be used for either include or exclude. this is array of glob patterns. So it would be better to think it as `.gitignore`. we internally use `'ignore'` So please check it as well for complex pattern needs.
472
+
473
+ ## CDN Mapping Configuration
474
+
475
+ ### cdnMapping.isCdnEnabled
476
+
477
+ > Type: (boolean)
478
+
479
+ Specifies whether CDN mapping is enabled or disabled. The default value is `false`.
480
+
481
+ ### cdnMapping.variableName
482
+
483
+ > Type: (string)
484
+
485
+ Specifies the variable name for CDN mapping. The default value is an empty string.This js statement will be used for cdn (domain that will server static assets such as js, css ) for download dynamic chunks (assets)
486
+
487
+ Example value: `window.__CDN_URL__`
488
+
489
+ ### cdnMapping.cssTemplate
490
+
491
+ > Type: (string)
492
+
493
+ Specifies the CSS template for CDN mapping. This template will be used in initial html to download initial css assets. The default value is an empty string.
494
+ Example value: `{{--css-cdn-domain}}`
495
+
496
+ ### cdnMapping.jsTemplate
497
+
498
+ > Type: (string)
499
+
500
+ Specifies the JavaScript template for CDN mapping. This template will be used in initial html to download initial js assets. The default value is an empty string.
501
+ Example value: `{{--js-cdn-domain}}`
502
+
503
+ ### cdnMapping.i18nTemplate
504
+
505
+ > Type: (string)
506
+
507
+ Specifies the template for mapping i18n assets to CDN. This template will be used in initial html to download initial i18n assets. The default value is an empty string.
508
+ Example value: `{{--i18n-cdn-domain}}`
509
+
510
+ ## Manifest JSON Configuration
511
+
512
+ ### manifestJson.enable
513
+
514
+ > Type: (boolean)
515
+
516
+ Specifies whether to generate a manifest.json file. The default value is `true`. This will be use full in production mode identifying file hash.
517
+
518
+ ## Runtime Chunk Character Configuration
519
+
520
+ ### changeRuntimeChunkChar
521
+
522
+ > Type: (string)
523
+
524
+ Specifies the character used to separate runtime chunks. The default value is `'~'`.
525
+
526
+ ## Service Worker Configuration
527
+
528
+ ### serviceWorker.enable
529
+
530
+ > Type: (boolean)
531
+
532
+ Specifies whether the service worker functionality is enabled or disabled. The default value is `false`.
533
+
534
+ ### serviceWorker.templateFilePath
535
+
536
+ > Type: (string)
537
+
538
+ Specifies the template file path for the service worker. The default value is `'sw.js'`.
539
+
540
+ For more [details](docs/ServiseWorkerTemplate.md)
541
+
542
+ ### serviceWorker.outputFilePath
543
+
544
+ > Type: (string)
545
+
546
+ Specifies the output file path for the service worker. The default value is `'/v1.js'`.
547
+
548
+ ### serviceWorker.replaceText
549
+
550
+ > Type: (string)
551
+
552
+ Specifies the text to replace in the service worker template file. The default value is `'//<!--AssetsFromBuild -->'`.
553
+
554
+ This documentation provides an overview of the configuration options available in the Client Build Tool and their default values. You can modify these values to suit your project's specific needs and requirements.
555
+
556
+ ## Custom Chunks Configuration
557
+
558
+ ### customChunks
559
+
560
+ > Type: (array)
561
+
562
+ Specifies an array of custom chunks for the application. Each chunk is represented as an object with the following properties:
563
+
564
+ - `name` (string): Specifies the name of the chunk.
565
+ - `patterns` (array): Specifies the file patterns to be included in the chunk.
566
+
567
+ For more [details](docs/CustomChunksConfiguration.md)
@@ -0,0 +1,2 @@
1
+
2
+ every folders must have unit testcases, only 100%
package/NOTES-Dec12.md ADDED
@@ -0,0 +1,12 @@
1
+ Today's Idea's
2
+
3
+ for client build tool options deprecation
4
+
5
+ Steps of Ideas:-
6
+ 1. we have to have only valid and updated options on `defaultConfigValues.js` file
7
+ 2. we need to have two deprecation config files, on for `package.json options` other for `cli options` (ex --app:port)
8
+ 3. after we finished code read valid options we will run deprecation options and throw warning
9
+ 4. fallback steps must be in deprecation handling not in `defaultConfigValues.js` This Is must for maintaining
10
+
11
+ shall we use
12
+ cssLoaderOptions `getLocalIdent` for `selector weight` just thought.