@zohodesk/react-cli 1.1.14-kubernetes → 1.1.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. package/.vscode/settings.json +25 -0
  2. package/README.md +294 -16
  3. package/bin/cli.js +30 -55
  4. package/docs/ComposeMinification.md +13 -0
  5. package/docs/CustomChunks.md +12 -9
  6. package/docs/MarkdownParser.md +18 -0
  7. package/docs/ReactLive.md +14 -0
  8. package/docs/SelectorWeight.md +3 -0
  9. package/docs/ValueReplacer.md +27 -0
  10. package/docs/VariableConversion.md +6 -1
  11. package/docs/patternFiltering.md +57 -0
  12. package/lib/common/buildEs.js +12 -0
  13. package/lib/common/runPreProcess.js +71 -0
  14. package/lib/common/splitChunks.js +65 -45
  15. package/lib/common/testPattern.js +9 -11
  16. package/lib/common/valueReplacer.js +1 -3
  17. package/lib/configs/resolvers.js +16 -5
  18. package/lib/configs/webpack.css.umd.config.js +3 -2
  19. package/lib/configs/webpack.dev.config.js +15 -5
  20. package/lib/configs/webpack.docs.config.js +17 -5
  21. package/lib/configs/webpack.impact.config.js +11 -4
  22. package/lib/configs/webpack.prod.config.js +15 -5
  23. package/lib/constants.js +3 -3
  24. package/lib/deprecationLogger.js +40 -0
  25. package/lib/loaderUtils/getCSSLoaders.js +98 -49
  26. package/lib/loaderUtils/tests/windowsModification.test.js +10 -0
  27. package/lib/loaderUtils/windowsModification.js +6 -1
  28. package/lib/loaders/__test__/markdownLoader.spec.js +145 -0
  29. package/lib/loaders/composeLoader.js +298 -0
  30. package/lib/loaders/docsLoader.js +18 -7
  31. package/lib/loaders/markdownLoader.js +71 -0
  32. package/lib/loaders/reactLiveConvertor.js +105 -0
  33. package/lib/loaders/selectorMappingLoader.js +9 -9
  34. package/lib/logger.js +27 -0
  35. package/lib/pluginUtils/getDevPlugins.js +25 -6
  36. package/lib/pluginUtils/getProdPlugins.js +32 -5
  37. package/lib/pluginUtils/getUMDCSSPlugins.js +1 -1
  38. package/lib/pluginUtils/getUMDComponentPlugins.js +1 -1
  39. package/lib/plugins/CustomAttributePlugin.js +82 -0
  40. package/lib/plugins/CustomAttributePlugin.md +35 -0
  41. package/lib/plugins/EFCPlugin.js +9 -9
  42. package/lib/plugins/EFCTemplatePlugin.js +10 -12
  43. package/lib/plugins/EfcResourceCleanupPlugin.js +43 -0
  44. package/lib/plugins/I18NInjectIntoIndexPlugin.js +8 -9
  45. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +2 -3
  46. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +2 -7
  47. package/lib/plugins/I18nSplitPlugin/index.js +1 -1
  48. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +8 -8
  49. package/lib/plugins/{UglifyCSSPlugin.js → MinifyPlugin.js} +3 -3
  50. package/lib/plugins/ReportGeneratePlugin.js +8 -6
  51. package/lib/plugins/ResourceHintsPlugin.js +13 -3
  52. package/lib/plugins/SelectorPlugin.js +77 -37
  53. package/lib/plugins/StatsPlugin.js +82 -0
  54. package/lib/plugins/UnusedFilesFindPlugin.js +7 -5
  55. package/lib/plugins/VariableConversionCollector.js +40 -101
  56. package/lib/plugins/index.js +7 -7
  57. package/lib/plugins/utils/classHandling.js +35 -0
  58. package/lib/plugins/utils/fileHandling.js +92 -0
  59. package/lib/plugins/utils/tests/fileHandling.test.js +30 -0
  60. package/lib/plugins/variableConvertorUtils.js +133 -0
  61. package/lib/postcss-plugins/EmptyPlugin.js +8 -0
  62. package/lib/postcss-plugins/ExcludePlugin.js +1 -1
  63. package/lib/postcss-plugins/IncludePlugin.js +23 -0
  64. package/lib/postcss-plugins/RTLSplitPlugin.js +4 -10
  65. package/lib/postcss-plugins/SelectorReplace.js +80 -0
  66. package/lib/postcss-plugins/ValueReplacer.js +8 -29
  67. package/lib/postcss-plugins/__test__/selectorReplace.test.js +28 -0
  68. package/lib/postcss-plugins/__test__/valueReplacer.spec.js +43 -0
  69. package/lib/postcss-plugins/hoverActivePlugin.js +0 -6
  70. package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +0 -1
  71. package/lib/postcss-plugins/variableModificationPlugin/index.js +94 -38
  72. package/lib/schemas/index.js +95 -18
  73. package/lib/servers/devBuild.js +13 -11
  74. package/lib/servers/getCliPath.js +3 -5
  75. package/lib/servers/httpsOptions.js +12 -13
  76. package/lib/servers/nowatchserver.js +62 -55
  77. package/lib/servers/requireLocalOrGlobal.js +61 -0
  78. package/lib/servers/server.js +53 -52
  79. package/lib/utils/cssClassNameGenerate.js +70 -13
  80. package/lib/utils/deprecationSupport.js +134 -0
  81. package/lib/utils/getOptions.js +35 -28
  82. package/lib/utils/getServerURL.js +1 -9
  83. package/lib/utils/index.js +14 -12
  84. package/lib/utils/initPreCommitHook.js +5 -5
  85. package/lib/utils/log.js +11 -0
  86. package/lib/utils/object-manipulation.js +88 -0
  87. package/lib/utils/pullOrigin.js +3 -3
  88. package/lib/utils/reinstallDependencies.js +3 -3
  89. package/lib/utils/selectorReplacer.js +47 -0
  90. package/lib/utils/switchBranch.js +4 -2
  91. package/lib/utils/variableConverter.js +104 -0
  92. package/npm-shrinkwrap.json +33485 -0
  93. package/package.json +5 -3
  94. package/templates/docs/all.html +1 -0
  95. package/templates/docs/component.html +1 -0
  96. package/templates/docs/components.html +1 -0
  97. package/templates/docs/css/markdown.css +202 -0
  98. package/templates/docs/css/style.css +136 -169
  99. package/templates/docs/index.html +796 -632
  100. package/lib/plugins/composeCommonPlugin.js +0 -30
  101. package/lib/postcss-plugins/variableModifier.js +0 -244
@@ -0,0 +1,25 @@
1
+ {
2
+ "cSpell.words": [
3
+ "classname",
4
+ "cmjs",
5
+ "devbuild",
6
+ "escodegen",
7
+ "expublish",
8
+ "gitclone",
9
+ "hgclone",
10
+ "mockapi",
11
+ "mockserver",
12
+ "nowatchserver",
13
+ "nowatchstart",
14
+ "postpublish",
15
+ "propertytojson",
16
+ "sslcert",
17
+ "sslcertupdate",
18
+ "sstest",
19
+ "uglifycss",
20
+ "valuereplacer",
21
+ "xmlhttprequest",
22
+ "zohodesk",
23
+ "zsecurity"
24
+ ]
25
+ }
package/README.md CHANGED
@@ -44,24 +44,287 @@ Now to run app
44
44
 
45
45
  # Change Logs
46
46
 
47
+ # 1.1.15 (11-10-2023)
48
+
49
+ **Feature:-**
50
+
51
+ - externals was added to Prevent bundling of certain imported packages and retrieve these external dependencies at runtime.
52
+ - to use externals, we use the following pattern in `app > externals` :
53
+
54
+ For example
55
+ ```
56
+ externals: {
57
+ <key> : <value>
58
+ }
59
+ ```
60
+ # 1.1.14 (11-9-2023)
61
+
62
+ **Feature:-**
63
+
64
+ - Value Replacer supports `^` before and `$` after the word to consider the whole word for replacement. Only if the exact word comes as value, there will be a replacement made.
65
+
66
+ **Issue Fix**
67
+
68
+ - 'space' character on variable conversion changes to undefined fixed.
69
+ - calc(100%) variable conversion to undefined fixed.
70
+ - height value if text converts to undefined, issue fixed.
71
+
72
+ # 1.1.13 (4-9-2023)
73
+
74
+ **Changes**
75
+
76
+ - Fixed the issue related to the resource cleanup plugin. (EfcResouceCleanupPlugin)
77
+
78
+
79
+ # 1.1.12 (1-9-2023)
80
+
81
+ **Features**
82
+
83
+ - Generating stats.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`.
84
+ - Added Resource Cleanup plugin to cleanup resource retained by build tool. this plugin is controlled by custom attributes enable flag.
85
+
86
+ **Changes**
87
+
88
+ - Added a new config `stats` to control stats file generation.
89
+ - Using Existing custom attributes flag, we can control resource cleanup plugin.
90
+
91
+ # 1.1.11 (4-8-2023)
92
+
93
+ **Changes**
94
+
95
+ - we have renamed our default config file as `react-cli.config.js` instead of `build.config.js`. But we still support `build.config.js` we will remove it in later major version.
96
+
97
+ - Prop-type, Prop description, Default Props support for docs given.
98
+ - Docs and Docs_Code UI updated.
99
+
100
+ **Features:-**
101
+
102
+ - custom classname prefix for separate packages now supported.
103
+ - to use custom classnames for specific patterns, we use the following pattern in `app > customClassNamePrefix` or `docs > customClassNamePrefix` :
104
+
105
+ ```
106
+ "customClassNamePrefix" : [
107
+ {
108
+ "enable": true,
109
+ "prefix": "[required-prefix]",
110
+ "patterns":[
111
+ "**/[path-name]/**/*.css"
112
+ ]
113
+ }
114
+ ]
115
+ ```
116
+
117
+ For example,
118
+
119
+ ```
120
+ "customClassNamePrefix": [
121
+ {
122
+ "enable": true,
123
+ "prefix": "zdSvg",
124
+ "patterns": [
125
+ "**/@zohodesk/svg/**/*.css"
126
+ ]
127
+ },
128
+ ],
129
+ ```
130
+
131
+ **Issue Fix:**
132
+
133
+ - typo fix, (../src/common/runPreProcess.js) to (../lib/common/runPreProcess.js) in cli.js our code.
134
+
135
+ # 1.1.10 (2-8-2023)
136
+
137
+ **Issue Fix:**
138
+
139
+ - undefined plugin postcss issue fixed for docs.
140
+ - unnecessary deprecation warning stopped. (for exclude config)
141
+
142
+ # 1.1.9 (25-7-2023)
143
+
144
+ **Features:-**
145
+
146
+ - we have added config file support for react-cli schema. the default config file name `build.config.js` support added. In `build.config.js` you must export configuration object under `config` key. And Note: `build.config.js` is high priority then `package.json` `react-cli` config.
147
+ - added support for using regex expression to get group of chunks chunkId via Resource Hint plugin prefetch/preload hook.
148
+ only will be activate when `resourceHints` => `allowPrefetchingMultipleChunks` as `true`
149
+ - added support for pattern as function for custom chunks split logic.
150
+ - added options to split chunks base config in the key `app` => `customChunksBaseConfig` as object
151
+ - added `postCssPluginOrder` feature :
152
+
153
+ - If `app > postCssPluginOrder` or `docs > postCssPluginOrder` is set to "false", default plugin order will be followed.
154
+ - If `app > postCssPluginOrder` or `docs > postCssPluginOrder` is set to "true", order preserved in `plugins` Object will be considered.
155
+ - If `app > postCssPluginOrder` or `docs > postCssPluginOrder` is set to an array with plugins in a custom order, the custom order will be considered.
156
+
157
+ - We use the same plugin names as in `patterns` for the plugins to execute successfully.
158
+
159
+ **Issue Fix**
160
+
161
+ - fixed file path separator issue with split chunks config for vendor exclude list for windows (that was work well for mac and ubuntu only issue in windows).
162
+ - fixed cssUniqueness pattern not working in docs.
163
+
164
+ **Changes**
165
+
166
+ - previously all custom chunks are enforce true, no we have given support for enforce false for chunks on splitChunks config.
167
+
168
+ # 1.1.8
169
+
170
+ **Issue Fix**
171
+
172
+ - Docs fix for Selector Replace 'always require argument' issue.
173
+
174
+ # 1.1.7
175
+
176
+ **Feature**
177
+
178
+ - Markdown parser feature added in docs
179
+ For more info please refer to :
180
+ [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/2.0.0/docs/MarkdownParser.md)
181
+
182
+ # 1.1.6-exp.2
183
+
184
+ - fixed file path separator issue with split chunks config for vendor exclude list.
185
+ - added support for not doing enforce true for chunks on splitChunks config.
186
+
187
+ # 1.1.5-exp.5
188
+
189
+ - fixed the issues regarding custom chunks base config schema.
190
+
191
+ # 1.1.5-exp.4
192
+
193
+ - added support for using regex expression to get group of chunks chunkId via Resource Hint plugin prefetch/preload hook.
194
+
195
+ # 1.1.5-exp.3
196
+
197
+ - added options to split chunks base config
198
+ - added support for passing custom chunks split logic as function.
199
+
200
+ # 1.1.6
201
+
202
+ **Issue Fix**
203
+
204
+ - local install react-cli spawnSync Error fix in npm 8
205
+ - babel version update issue fix (Cannot read properties of undefined (reading 'file')) and (BABEL_TRANSFORM_ERROR)
206
+
207
+ # 1.1.5-exp.2
208
+
209
+ **Issue Fix**
210
+
211
+ - local install react-cli spawnSync Error fix in npm 8
212
+
213
+ # 1.1.5
214
+
215
+ **Issue Fix**
216
+
217
+ - include pattern fix for variable converter plugin fixed
218
+
219
+ # 1.1.4
220
+
221
+ **Issue Fix**
222
+
223
+ - global install react-cli spawnSync Error fix
224
+ - `0px` variable value conversion issue fixed
225
+ - pattern exclude for postcss plugins case fixed
226
+
227
+ # 1.1.3
228
+
229
+ **Issue Fix**
230
+
231
+ - local install react-cli spawnSync Error fix
232
+
233
+ # 1.1.2
234
+
235
+ **Issue Fix**
236
+
237
+ - ReactLiveConverter filepath changed to 'reactLiveConverter.js' in docLoader file
238
+
239
+ # 1.1.1
240
+
241
+ **Issue Fix**
242
+
243
+ - docs component name incorrect in windows, when using --enableReactLive issue fixed.
244
+
245
+ **Feature Update**
246
+
247
+ - Support for desk-library to use Selector Replace plugin using individual script. To use `react-cli selectorReplacer [source] [target]`
248
+
249
+ # 1.1.0
250
+
251
+ **Feature Update**
252
+
253
+ - Support for desk-library to use variable conversion plugin using individual script. To use `react-cli variableConverter [source] [target]`
254
+ - pattern filter changes, new filter system instead of exclude to include or exclude files for plugins.
255
+ For more info please refer to :
256
+ [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/2.0.0/docs/patternFiltering.md)
257
+ - React Live feature implemented for Docs.
258
+ [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/2.0.0/docs/ReactLive.md)
259
+
260
+ # 1.0.3-beta.1
261
+
262
+ **Issue Fix**
263
+
264
+ - nock api not working issue fixed. This error throwing in @zohodesk/react-cli@1.0.2 version. but working in older versions ( 0.0.1-beta.178 )
265
+
266
+ # 1.0.3
267
+
268
+ **Feature Update**
269
+
270
+ - Support for global httpsCerts usage
271
+ - Support for global client_packages_group usage
272
+ - custom attribute for dynamically loading chunks, In this version we merged changes from [0.0.1-beta.167.1](#0.0.1-beta.167.1).
273
+ **Package Update**
274
+ - @zohodesk/client_packages_group@**1.0.1** ==> @zohodesk/client_packages_group@**1.0.2**
275
+
276
+ # 1.0.2
277
+
278
+ **Feature Update**
279
+
280
+ - Selector replace plugin made as a custom postcss-plugin with update to code that was unpublished in package.
281
+
282
+ # 1.0.1
283
+
284
+ **Issue Fix**
285
+
286
+ - variable conversion for px and var(--) values in same declaration was not supported, now it is supported.
287
+ - package-lock.json removed from `.npmignore`
288
+
289
+ **Feature Update**
290
+
291
+ - exclude added to Selector Plugin
292
+
293
+ # 1.0.0
294
+
295
+ ## Major Release
296
+
297
+ **Changes:**
298
+
299
+ - File support added for `.webp` for `docs`, `dev` and `prod` mode
300
+ - File support added for `.webm` for `docs`, `dev` and `prod` mode
301
+
302
+ **Breaking Changes:**
303
+
304
+ - We have remove ssl certificate for security reasons.
305
+ So default https server won't run.
306
+ In order to make it work as before you need to specify two things
307
+ 1. install `@zohodesk-private/client_dev_cert`
308
+ 2. `react-cli.app.server.httpsCerts` option example `"httpsCerts": "@zohodesk-private/client_dev_cert"`
309
+ unless configaration are proper this may break `start` , `docs` , `nowatchstart`. and mock wms `/wmsmockapi` won't work.
310
+ So Please be carefull when you update this version or above without proper configaration.
47
311
 
48
312
  # 0.0.1-beta.178
49
313
 
50
314
  **Changes:**
51
315
 
52
316
  - File support added for `.webp` for `docs`, `dev` and `prod` mode
53
- - and this version has same as `0.0.1-exp.178.1`, `0.0.1-exp.178.2`
54
317
  - File support added for `.webm` for `docs`, `dev` and `prod` mode
55
318
 
56
319
  **Breaking Changes:**
57
320
 
58
- - We have remove ssl certificate for security reasons.
59
- So default https server won't run.
60
- In order to make it work as before you need to specify two things
321
+ - We have remove ssl certificate for security reasons.
322
+ So default https server won't run.
323
+ In order to make it work as before you need to specify two things
61
324
  1. install `@zohodesk-private/client_dev_cert`
62
- 2. `react-cli.app.server.httpsCerts` option example `"httpsCerts": "@zohodesk-private/client_dev_cert"`
63
- unless configaration are proper this may break `start` , `docs` , `nowatchstart`.
64
- So Please be carefull when you update this version or above without proper configaration.
325
+ 2. `react-cli.app.server.httpsCerts` option example `"httpsCerts": "@zohodesk-private/client_dev_cert"`
326
+ unless configaration are proper this may break `start` , `docs` , `nowatchstart`.
327
+ So Please be carefull when you update this version or above without proper configaration.
65
328
 
66
329
  # 0.0.1-exp.178.2
67
330
 
@@ -73,13 +336,13 @@ Now to run app
73
336
 
74
337
  **Breaking Changes:**
75
338
 
76
- - We have remove ssl certificate for security reasons.
77
- So default https server won't run.
78
- In order to make it work as before you need to specify two things
339
+ - We have remove ssl certificate for security reasons.
340
+ So default https server won't run.
341
+ In order to make it work as before you need to specify two things
79
342
  1. install `@zohodesk-private/client_dev_cert`
80
- 2. `react-cli.app.server.httpsCerts` option example `"httpsCerts": "@zohodesk-private/client_dev_cert"`
81
- unless configaration are proper this may break `start` , `docs` , `nowatchstart`.
82
- So Please be carefull when you update this version or above without proper configaration.
343
+ 2. `react-cli.app.server.httpsCerts` option example `"httpsCerts": "@zohodesk-private/client_dev_cert"`
344
+ unless configaration are proper this may break `start` , `docs` , `nowatchstart`.
345
+ So Please be carefull when you update this version or above without proper configaration.
83
346
 
84
347
  # 0.0.1-beta.177
85
348
 
@@ -140,8 +403,8 @@ cli has been updated to fix compose issue faced when classname:hover exists and
140
403
 
141
404
  **Feature:-**
142
405
 
143
- - `react-cli.test.classnameFormat` option added to change CssModules (Ex: import style from "./a.module.css" ) className transform template unittest case.
144
- `classnameFormat` default value `[classname]` you can customize it. Example: `[classname]-[hash]`
406
+ - `react-cli.test.classnameFormat` option added to change CssModules (Ex: import style from "./a.module.css" ) className transform template unittest case.
407
+ `classnameFormat` default value `[classname]` you can customize it. Example: `[classname]-[hash]`
145
408
 
146
409
  **Changes:-**
147
410
 
@@ -160,7 +423,7 @@ For an more information and reference, refer to `[details](https://zgit.csez.zoh
160
423
 
161
424
  # 0.0.1-beta.172
162
425
 
163
- We have renamed some options, For Our future features convenience.
426
+ We have renamed some options, For Our future features convenience.
164
427
  We have given fallback support.
165
428
  Deprecation Warnings:-
166
429
 
@@ -236,6 +499,11 @@ Features:-
236
499
 
237
500
  - In docs we have added `Description` for Component Props- check out it in `PropTypes` tab
238
501
 
502
+ # 0.0.1-beta.167.1
503
+
504
+ In this version we merged changes from [0.0.1-betaa.138.1](#0.0.1-betaa.138.1).
505
+ and with [0.0.1-beta.167](#0.0.1-beta.167) version changes.
506
+
239
507
  # 0.0.1-beta.167
240
508
 
241
509
  SSL certificate update
@@ -497,6 +765,12 @@ impact servise related changes:-
497
765
  - babel runtime plugin issue fix in prod config
498
766
  - few enhancements
499
767
 
768
+ # 0.0.1-betaa.138.1
769
+
770
+ - new feature added for custom extra attribute for dynamically added tags by webpack.
771
+ - To enable this feature you need to enable "react-cli" => "app" => "customAttributes" => "enable"
772
+ - For more [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/9eea8df14e55584b2114b5e484ca8b751a4ba191/src/plugins/CustomAttributePlugin.md)
773
+
500
774
  # 0.0.1-beta.138
501
775
 
502
776
  - sstest library version updated
@@ -1135,3 +1409,7 @@ impact servise related changes:-
1135
1409
  - prod string error fix
1136
1410
  - efc build support
1137
1411
  - single style tag support
1412
+
1413
+ ```
1414
+
1415
+ ```
package/bin/cli.js CHANGED
@@ -1,15 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const path = require('path');
4
- const { existsSync } = require('fs');
5
- const { spawnSync: _spawnSync, spawn } = require('child_process');
6
- const { getOptions } = require('../lib/utils/index.js');
4
+ const { spawnSync: _spawnSync, execSync } = require('child_process');
5
+ const getOptions = require('../lib/utils/getOptions.js').default;
7
6
 
8
- const { log } = require('../lib/utils');
7
+ const { log } = require('../lib/utils/log.js');
9
8
  const { getCliPath } = require('../lib/servers/getCliPath.js');
9
+ const { runPreProcess } = require('../lib/common/runPreProcess.js');
10
10
  //initPreCommitHook();
11
11
 
12
- const options = getOptions();
12
+ const [, , option] = process.argv;
13
+ const args = process.argv.slice(3);
14
+ const appPath = process.cwd();
15
+
16
+ const options = getOptions({ start: true, build: true, docs: true }[option]);
13
17
 
14
18
  function spawnSync(...args) {
15
19
  const result = _spawnSync(...args);
@@ -20,7 +24,6 @@ function spawnSync(...args) {
20
24
  }
21
25
 
22
26
  const { esLint: esLintOptions } = options || {};
23
- const { preprocess } = options;
24
27
  const {
25
28
  ignoreFilePaths: esLintIgnorePaths,
26
29
  fix: esLintFix,
@@ -28,10 +31,6 @@ const {
28
31
  reportPath: reportPath
29
32
  } = esLintOptions || {};
30
33
 
31
- const [, , option] = process.argv;
32
- const args = process.argv.slice(3);
33
- const appPath = process.cwd();
34
-
35
34
  const webpack = getCliPath('webpack');
36
35
 
37
36
  const nodemon = getCliPath('nodemon');
@@ -39,49 +38,10 @@ const babel = getCliPath('babel');
39
38
  const propertyToJson = getCliPath('propertyToJson');
40
39
  const esLint = getCliPath('eslint');
41
40
 
42
- const preprocesserPath = preprocess.runner
43
- ? path.join(process.cwd(), preprocess.runner)
44
- : '';
45
- const preprocessCli = preprocess.stopNodemon ? 'node' : nodemon;
46
- if (preprocesserPath && existsSync(preprocesserPath)) {
47
- // eslint-disable-next-line default-case
48
- switch (option) {
49
- case 'start':
50
- case 'docs':
51
- spawn(preprocessCli, [preprocesserPath], {
52
- stdio: 'inherit',
53
- cwd: preprocesserPath.slice(0, preprocesserPath.lastIndexOf('/') + 1)
54
- });
55
- // NOTE: it's ok if we not close this here
56
- // Because when node server stops this program willbe closed So this nodemon will be killed as well
57
- break;
58
- case 'nowatchstart':
59
- case 'devbuild':
60
- case 'build:library:es':
61
- case 'build:component:es':
62
- case 'build:library:cmjs':
63
- case 'build:component:cmjs':
64
- spawnSync('node', [preprocesserPath], {
65
- stdio: 'inherit',
66
- cwd: preprocesserPath.slice(0, preprocesserPath.lastIndexOf('/') + 1)
67
- });
68
- break;
69
- }
70
- }
41
+ runPreProcess({ options, option, nodemon, spawnSync });
71
42
 
72
43
  let result;
73
44
  switch (option) {
74
- case 'preprocessor':
75
- if (preprocesserPath && existsSync(preprocesserPath)) {
76
- result = spawnSync(preprocessCli, [preprocesserPath], {
77
- stdio: 'inherit',
78
- cwd: preprocesserPath.slice(0, preprocesserPath.lastIndexOf('/') + 1)
79
- });
80
- process.exit(result.status);
81
- } else {
82
- console.error(`preProcessor not exists ${preprocesserPath}`);
83
- }
84
- break;
85
45
  case 'lint-setup': {
86
46
  result = spawnSync(
87
47
  'node',
@@ -116,6 +76,22 @@ switch (option) {
116
76
  { stdio: 'inherit' }
117
77
  );
118
78
 
79
+ process.exit(result.status);
80
+ break;
81
+ case 'variableConverter':
82
+ result = spawnSync(
83
+ 'node',
84
+ [require.resolve('../lib/utils/variableConverter')].concat(args),
85
+ { stdio: 'inherit' }
86
+ );
87
+ process.exit(result.status);
88
+ break;
89
+ case 'selectorReplacer':
90
+ result = spawnSync(
91
+ 'node',
92
+ [require.resolve('../lib/utils/selectorReplacer.js')].concat(args),
93
+ { stdio: 'inherit' }
94
+ );
119
95
  process.exit(result.status);
120
96
  break;
121
97
  case 'valuereplacer':
@@ -215,9 +191,7 @@ switch (option) {
215
191
  case 'devbuild':
216
192
  result = spawnSync(
217
193
  'node',
218
- [
219
- require.resolve('../lib/servers/devBuild')
220
- ].concat(args),
194
+ [require.resolve('../lib/servers/devBuild')].concat(args),
221
195
  // [require.resolve('../lib/servers/staticServer'), '--expose-http2'].concat(args),
222
196
  { stdio: 'inherit' }
223
197
  );
@@ -256,7 +230,7 @@ switch (option) {
256
230
  require.resolve('../lib/servers/mockserver.js'),
257
231
  '--delay',
258
232
  '2500ms',
259
- 'watch',
233
+ '--watch',
260
234
  `${appPath + path.sep}mockapi`
261
235
  ].concat(args),
262
236
  { stdio: 'inherit' }
@@ -463,8 +437,9 @@ switch (option) {
463
437
  case '--v':
464
438
  case '-v':
465
439
  log(`@zohodesk/react-cli v${require('../package.json').version}`);
440
+ log(`Node Js Version : ${process.version}`);
441
+ log(`Npm Version : ${execSync('npm --version')}`);
466
442
  break;
467
-
468
443
  default:
469
444
  log(`react-cli > Unknown option "${option}"`);
470
445
  log('react-cli app <appName>');
@@ -0,0 +1,13 @@
1
+ # Compose Minification
2
+
3
+ We use this plugin to extract all the common attributes ( margin, padding... ) supported and write them in respective common files( margin.css, padding.css... ) These are further reference to the classname instead of a line of code by composing and adding classnames for the same.
4
+
5
+
6
+ # Feature :
7
+
8
+ * We can enable this plugin by representing the value of ` react-cli > app > plugins > composeMinification ` to `true`.
9
+ * The creation of `margin.css`, `padding.css`, `position.css` and so on will be done initially by a manual script for the application.
10
+ * Further the `composeMinification` plugin converts the `props` of common attributes under check into `compose` and `values` into `compose format` ( m10 from `../margin.css`)
11
+ * On runtime the conversion takes place and classnames for the properties (`margin`, `padding`, so on...) are added with references to respective files and styles are applied.
12
+
13
+
@@ -4,23 +4,26 @@ In react-cli we provide options to create custom chunks.
4
4
  This Custom Chunk Option is array of Object
5
5
  that Object keys are
6
6
 
7
- - `pattern` regex pattern as string
8
- - `name` chunk name
9
- - `size` is count which is minmum chunk dublicated or need in chunks
7
+ - `pattern` **{ String | Function | Array<String> }** regex pattern as string and custom logic to split chunks can be defined using function
8
+ - `name` **{ String }** chunk name
9
+ - `size` **{ Number }** is count which is minimum chunk duplicated or need in chunks
10
10
 
11
11
  > Since 0.0.1-exp.164.1
12
12
 
13
13
  extra features in custom chunks :-
14
14
  for more details [SplitChunkPlugin](https://webpack.js.org/plugins/split-chunks-plugin/) webpack
15
15
 
16
- - `minChunks`: `minChunks` is alies of `size` default value is `2`,
17
- - `rules`: `rules` is same as `pattern` with some easy hooks
16
+ - `minChunks`: `minChunks` is alias of `size` default value is `2`,
17
+ - `rules`: `rules` is same as `pattern` with some easy hooks **(removed after v1.1.5)**
18
18
  - use `/` for both windows and linux we will replace internally
19
19
  - for `.*` we need to use `*`
20
20
  - we can consider rules as regex when the `rules-string` has any of these `*`, `^`, `$`. So if you want regex then kindly use `*` in your `rules-string` for force regex
21
21
  - `chunks`: by this option we can specify , default value is `all`,
22
22
  - `priority`: priority default value is `-10 * (index + 2)`,
23
- - `enforce`: enforce default value is true,
24
- - `maxSize`: maxSize, default value is 0,
25
- - `minSize`: minSize, default value is 20000,
26
- includeDepenency: includeDepenency default value is false
23
+ - `enforce`: enforce default value is `true`,
24
+ - `maxSize`: maxSize, default value is `0`,
25
+ - `minSize`: minSize, default value is `20000`,
26
+ - `reuseExistingChunk` If the current chunk contains modules already split out from the main bundle, it will be reused instead of a new one being generated. This can affect the resulting file name of the chunk.
27
+ - `automaticNamePrefix` with this you can specify for chunks created through that specified config. default value `''`.
28
+ - `cacheGroupName`: `cacheGroupName` is alias of `name`, But it won't work as chunk name, instead it will just work as key in cacheGroup.
29
+ <!-- includeDependency: includeDependency default value is `false` -->
@@ -0,0 +1,18 @@
1
+
2
+ ----> markdownParser <----
3
+
4
+ 1. Markdown parser allows us to write Documentation using Markdown language inside the Javascript file
5
+ 2. This will converts the snippets to HTML tag.
6
+ 3. We can implement this only inside the particular syntax which is metioned below.
7
+ 4. We can enable/disable this feature by `npm run docs --markdown_parser=true/false` default value will be `true`.
8
+ 5. Also we can enable/disable this feature by adding `enableMDParser` key inside the package.json under the `docs`.
9
+
10
+ ### syntax
11
+ ```
12
+ /* MD:START
13
+ # Hello World
14
+ MD:END */
15
+ ```
16
+
17
+ # v1.1.7 update:
18
+ * Markdown Parser feature implemented.
@@ -0,0 +1,14 @@
1
+
2
+ ----> ReactLive <----
3
+
4
+ 1. React Live is a live playground for reactjs (For now we have implemented in our docs)
5
+ 2. So, for this we are using reactLiveConverter.js (src/loaders) to convert the file format.
6
+ 3. We can enable/disable this feature by `npm run docs --enableReactLive=true/false` default value will be `true`.
7
+ 4. Also we can enable/disable this feature by adding `enableReactLive` key inside the package.json under the `docs`.
8
+
9
+ # v1.1.0 update:
10
+ * ReactLive feature implemented.
11
+
12
+ # v1.1.2 update:
13
+
14
+ * ReactLiveConverter filepath changed to 'reactLiveConverter.js' in docLoader file
@@ -4,3 +4,6 @@
4
4
  * all classes in all files will be added with the `defaultSelector` provided in package.json to increase selector weight
5
5
  * in case a specific chunk file is supposed to have a different selector, it can be mentioned in the `customFileSelectorWeight.json`. This will add the new selector to that particular chunk file.
6
6
  * `excludeStrings` is an array used to exclude selectors that should not be converted. Default selectors such as body, html are excluded through this way.
7
+
8
+ # v1.0.1 update:
9
+ * exclude support added, file paths to be added in `react-cli > app > exclude > selectorWeight` to be excluded from conversion.
@@ -58,3 +58,30 @@ new option `valueReplacer` added for replace css property value while build runn
58
58
  font: zdf-rCallBar_1 !important;
59
59
  }
60
60
  ```
61
+
62
+
63
+ If we need the exact word to be considered for replacement ( that is, if value is `text` and only if the value is `text` and not `text_cursor` or `cursortext` for example, the conversion happens ) we have to use `^` before the word and `$` after the word in the key.
64
+
65
+ # For Example :
66
+ {
67
+ valueReplacer: [
68
+ {
69
+ "props": [
70
+ "cursor",
71
+ "--label_cursor",
72
+ "--checkbox_cursor",
73
+ "--tag_cursor",
74
+ "--button_cursor",
75
+ "--textboxicon_icon_cursor",
76
+ ],
77
+ "values": {
78
+ "^default$": "var(--zdr-cursor-default)",
79
+ "^pointer$": "var(--zdr-cursor-pointer)",
80
+ "^text$": "var(--zdr-cursor-text)",
81
+ "^move$": "var(--zdr-cursor-move)",
82
+ }
83
+ }
84
+ ]
85
+ }
86
+
87
+ - Here we have added `^` before and `$` after default, pointer, text and move. Only if the exact words default, pointer, text and move are used, the values will be converted.
@@ -4,8 +4,13 @@
4
4
 
5
5
  Conversion for Variables from Variables to px in Supportapp completed (`variableIgnore.js` && `pxParserPostcss.js` to be referred to), and px to custom variables through the new `variableModificationPlugin`. Error Log generation can also be converted on enabling
6
6
 
7
+
8
+ **Issue Fix**
9
+ # Issue fix done in `1.0.1`
10
+ - variable conversion for px and var(--) values in same declaration was not supported, now it is supported.
11
+
7
12
  **Features:**
8
- # Features below are added form `0.0.1-beta.173`
13
+ # Features below are added from `0.0.1-beta.173`
9
14
  1. variables are converted from px to custom variables ( options are consumed from `cssVariableReplacementOptions.json` present in source folder )
10
15
  2. To enable the error log generation `errorLog` is to be made `true` in `cssVariableReplacementOptions.json` ( it will take a little longer than usual build time )
11
16
  3. To enable the console display of errors that are generated, `errorInConsole` is to be made `true` in `cssVariableReplacementOptions.json`