@zohodesk/react-cli 1.1.25-exp.6 → 1.1.26-exp.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -0
- package/bin/cli.js +0 -1
- package/lib/configs/resolvers.js +4 -0
- package/lib/pluginUtils/getDevPlugins.js +18 -11
- package/lib/pluginUtils/getProdPlugins.js +18 -11
- package/lib/plugins/CssOrderControlPlugin.js +36 -0
- package/lib/schemas/index.js +8 -0
- package/lib/servers/requireLocalOrGlobal.js +5 -2
- package/lib/utils/getOptions.js +0 -1
- package/package.json +2 -2
package/README.md
CHANGED
@@ -44,6 +44,32 @@ Now to run app
|
|
44
44
|
|
45
45
|
# Change Logs
|
46
46
|
|
47
|
+
# 1.1.26 (06-09-2024)
|
48
|
+
|
49
|
+
**Features**
|
50
|
+
|
51
|
+
- Add a new className format that mirrors the class names used in the source code.
|
52
|
+
```
|
53
|
+
app: {
|
54
|
+
displayClassName: true
|
55
|
+
}
|
56
|
+
```
|
57
|
+
|
58
|
+
- option given to disable the HtmlWebpackPlugin.
|
59
|
+
```
|
60
|
+
app: {
|
61
|
+
generateHtml: true
|
62
|
+
}
|
63
|
+
```
|
64
|
+
- Control the rendering order of async CSS chunks.
|
65
|
+
```
|
66
|
+
css: {
|
67
|
+
enable: true,
|
68
|
+
className: <ID of the tag before which all async CSS chunks should be rendered.>
|
69
|
+
}
|
70
|
+
```
|
71
|
+
|
72
|
+
|
47
73
|
# 1.1.25 (12-08-2024)
|
48
74
|
|
49
75
|
- mp3 files support added
|
package/bin/cli.js
CHANGED
@@ -13,7 +13,6 @@ const [, , option] = process.argv;
|
|
13
13
|
const args = process.argv.slice(3);
|
14
14
|
const appPath = process.cwd();
|
15
15
|
|
16
|
-
console.log(args, option, 'hello')
|
17
16
|
const options = getOptions({ start: true, build: true, docs: true }[option]);
|
18
17
|
|
19
18
|
function spawnSync(...args) {
|
package/lib/configs/resolvers.js
CHANGED
@@ -22,10 +22,14 @@ function moduleResolver(options) {
|
|
22
22
|
disableES5Transpile
|
23
23
|
} = options.app;
|
24
24
|
const customAlias = options.alias;
|
25
|
+
console.log(moduleResolvePath);
|
25
26
|
let required = moduleResolvePath && (0, _requireLocalOrGlobal.requireLocal)(moduleResolvePath);
|
27
|
+
console.log(required, 'requirwe');
|
26
28
|
|
27
29
|
if (!required) {
|
30
|
+
console.log('this global');
|
28
31
|
required = (0, _requireLocalOrGlobal.requireGlobal)('@zohodesk/client_packages_group');
|
32
|
+
console.log(required, 'what');
|
29
33
|
|
30
34
|
if (required) {
|
31
35
|
(0, _logger.messageLogger)('global `@zohodesk/client_packages_group` package taken as client_packages_group');
|
@@ -19,6 +19,8 @@ var _I18nSplitPlugin = _interopRequireDefault(require("../plugins/I18nSplitPlugi
|
|
19
19
|
|
20
20
|
var _RequireVariablePublicPlugin = _interopRequireDefault(require("../plugins/RequireVariablePublicPlugin"));
|
21
21
|
|
22
|
+
var _CssOrderControlPlugin = _interopRequireDefault(require("../plugins/CssOrderControlPlugin"));
|
23
|
+
|
22
24
|
var _copyWebpackPlugin = _interopRequireDefault(require("copy-webpack-plugin"));
|
23
25
|
|
24
26
|
var _webpack = _interopRequireDefault(require("webpack"));
|
@@ -33,17 +35,19 @@ var _VariableConversionCollector = _interopRequireDefault(require("../plugins/Va
|
|
33
35
|
|
34
36
|
var _SelectorPlugin = _interopRequireDefault(require("../plugins/SelectorPlugin"));
|
35
37
|
|
38
|
+
var _configHtmlWebpackPlugins = require("./configHtmlWebpackPlugins");
|
39
|
+
|
36
40
|
var _EfcResourceCleanupPlugin = _interopRequireDefault(require("../plugins/EfcResourceCleanupPlugin"));
|
37
41
|
|
38
42
|
var _EventsHandlingPlugin = require("../plugins/EventsHandlingPlugin");
|
39
43
|
|
40
44
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
41
45
|
|
42
|
-
// import { configHtmlWebpackPlugins } from './configHtmlWebpackPlugins';
|
43
46
|
// import { windowsModification } from '../loaderUtils/windowsModification';
|
44
47
|
const getDevPlugins = (options, publicPath) => {
|
45
48
|
const {
|
46
49
|
app: {
|
50
|
+
generateHtml,
|
47
51
|
tpFolder,
|
48
52
|
folder,
|
49
53
|
instrumentScript,
|
@@ -73,7 +77,8 @@ const getDevPlugins = (options, publicPath) => {
|
|
73
77
|
localeAttr: efcLocaleAttr
|
74
78
|
},
|
75
79
|
css: {
|
76
|
-
enableRTLSplit
|
80
|
+
enableRTLSplit,
|
81
|
+
cssOrderControler
|
77
82
|
},
|
78
83
|
i18n,
|
79
84
|
unusedFiles,
|
@@ -161,15 +166,16 @@ const getDevPlugins = (options, publicPath) => {
|
|
161
166
|
pluginsArr.push(new _lodashWebpackPlugin.default({
|
162
167
|
collections: true,
|
163
168
|
shorthands: true
|
164
|
-
}));
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
169
|
+
}));
|
170
|
+
generateHtml && (0, _configHtmlWebpackPlugins.configHtmlWebpackPlugins)(pluginsArr, {
|
171
|
+
enableChunkHash: false,
|
172
|
+
folder,
|
173
|
+
minify: false,
|
174
|
+
inject,
|
175
|
+
crossorigin,
|
176
|
+
hasEFC,
|
177
|
+
customScriptLoadingStrategey
|
178
|
+
});
|
173
179
|
|
174
180
|
if (hasEFC) {
|
175
181
|
pluginsArr.push(new _plugins.EFCPlugin({
|
@@ -194,6 +200,7 @@ const getDevPlugins = (options, publicPath) => {
|
|
194
200
|
mainChunkName: 'main'
|
195
201
|
}));
|
196
202
|
instrumentScript && pluginsArr.push(new _plugins.ScriptInstrumentPlugin());
|
203
|
+
cssOrderControler.enable && pluginsArr.push(new _CssOrderControlPlugin.default(cssOrderControler));
|
197
204
|
customAttributes.enable && pluginsArr.push(new _CustomAttributePlugin.CustomAttributePlugin(customAttributes));
|
198
205
|
customAttributes.enable && pluginsArr.push(new _EfcResourceCleanupPlugin.default(Object.assign({}, customAttributes, {
|
199
206
|
globalCacheObj: context
|
@@ -35,19 +35,23 @@ var _CustomAttributePlugin = require("../plugins/CustomAttributePlugin");
|
|
35
35
|
|
36
36
|
var _RtlCssPlugin = require("../plugins/RtlSplitPlugin/RtlCssPlugin");
|
37
37
|
|
38
|
+
var _CssOrderControlPlugin = _interopRequireDefault(require("../plugins/CssOrderControlPlugin"));
|
39
|
+
|
40
|
+
var _configHtmlWebpackPlugins = require("./configHtmlWebpackPlugins");
|
41
|
+
|
38
42
|
var _StatsPlugin = _interopRequireDefault(require("../plugins/StatsPlugin"));
|
39
43
|
|
40
44
|
var _EfcResourceCleanupPlugin = _interopRequireDefault(require("../plugins/EfcResourceCleanupPlugin"));
|
41
45
|
|
42
46
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
43
47
|
|
44
|
-
// import { configHtmlWebpackPlugins } from './configHtmlWebpackPlugins';
|
45
48
|
// eslint-disable-next-line no-unused-vars
|
46
49
|
const getProdPlugins = (options, publicPath = '') => {
|
47
50
|
let {
|
48
51
|
enableChunkHash
|
49
52
|
} = options.app;
|
50
53
|
const {
|
54
|
+
generateHtml,
|
51
55
|
manifestFileName,
|
52
56
|
bundleAnalyze,
|
53
57
|
optimize,
|
@@ -86,7 +90,8 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
86
90
|
i18n
|
87
91
|
} = options;
|
88
92
|
const {
|
89
|
-
enableRTLSplit
|
93
|
+
enableRTLSplit,
|
94
|
+
cssOrderControler
|
90
95
|
} = options.css;
|
91
96
|
const {
|
92
97
|
hasEFC: newOptionForEnableEFC,
|
@@ -172,15 +177,16 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
172
177
|
from: `${_path.default.join(process.cwd(), context, tpFolder)}/`,
|
173
178
|
to: `./${tpFolder}/`,
|
174
179
|
toType: 'dir'
|
175
|
-
}]));
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
180
|
+
}]));
|
181
|
+
generateHtml && (0, _configHtmlWebpackPlugins.configHtmlWebpackPlugins)(pluginsArr, {
|
182
|
+
enableChunkHash,
|
183
|
+
folder,
|
184
|
+
inject,
|
185
|
+
minify: minifyHtmlOptions,
|
186
|
+
customScriptLoadingStrategey,
|
187
|
+
crossorigin,
|
188
|
+
hasEFC
|
189
|
+
});
|
184
190
|
|
185
191
|
if (hasEFC) {
|
186
192
|
pluginsArr.push(new _plugins.EFCPlugin({
|
@@ -299,6 +305,7 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
299
305
|
} // plugins.push(new VariableConversionCollector({}));
|
300
306
|
|
301
307
|
|
308
|
+
cssOrderControler.enable && pluginsArr.push(new _CssOrderControlPlugin.default(cssOrderControler));
|
302
309
|
customAttributes.enable && pluginsArr.push(new _CustomAttributePlugin.CustomAttributePlugin(customAttributes));
|
303
310
|
customAttributes.enable && pluginsArr.push(new _EfcResourceCleanupPlugin.default(Object.assign({}, customAttributes, {
|
304
311
|
globalCacheObj: context
|
@@ -0,0 +1,36 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
|
8
|
+
class CssOrderControlPlugin {
|
9
|
+
constructor(options) {
|
10
|
+
this.options = {
|
11
|
+
className: options.className
|
12
|
+
};
|
13
|
+
}
|
14
|
+
|
15
|
+
apply(compiler) {
|
16
|
+
// NOTE: we not using this, Reason currently this option is only need for EFC,
|
17
|
+
// So it do not needed.
|
18
|
+
const className = this.options.className;
|
19
|
+
compiler.hooks.thisCompilation.tap({
|
20
|
+
name: 'CssOrderControlPlugin',
|
21
|
+
stage: 1,
|
22
|
+
fn: compilation => {
|
23
|
+
compilation.mainTemplate.hooks.requireEnsure.tap('CssOrderControlPlugin', source => {
|
24
|
+
// const str = attributeSetTemplate(cssAttributes, 'linkTag');
|
25
|
+
const replacedStr = source.replace('head.appendChild(linkTag);', `var referenceTag = document.getElementById('${className}');
|
26
|
+
head.insertBefore(linkTag, referenceTag);`); // console.log({ s: source, r: replacedStr });
|
27
|
+
|
28
|
+
return replacedStr;
|
29
|
+
});
|
30
|
+
}
|
31
|
+
});
|
32
|
+
}
|
33
|
+
|
34
|
+
}
|
35
|
+
|
36
|
+
exports.default = CssOrderControlPlugin;
|
package/lib/schemas/index.js
CHANGED
@@ -52,6 +52,10 @@ var _default = {
|
|
52
52
|
propertiesFolder: null
|
53
53
|
},
|
54
54
|
css: {
|
55
|
+
cssOrderControler: {
|
56
|
+
enable: false,
|
57
|
+
className: 'customCss'
|
58
|
+
},
|
55
59
|
enableRTLSplit: false,
|
56
60
|
valueReplacer: null,
|
57
61
|
//valueReplacer: [
|
@@ -126,6 +130,10 @@ var _default = {
|
|
126
130
|
cssDirStatement: null
|
127
131
|
},
|
128
132
|
app: {
|
133
|
+
generateHtml: {
|
134
|
+
value: true,
|
135
|
+
cli: 'generate_html'
|
136
|
+
},
|
129
137
|
displayClassName: {
|
130
138
|
value: false,
|
131
139
|
cli: 'display_class_name'
|
@@ -25,19 +25,22 @@ function requireLocalOrGlobal(moduleName, opts = {}) {
|
|
25
25
|
const {
|
26
26
|
local = true
|
27
27
|
} = opts;
|
28
|
-
const isRelativePath = moduleName[0] === '.';
|
28
|
+
const isRelativePath = moduleName[0] === '.';
|
29
|
+
console.log(moduleName, 'module name'); // NOTE: if starts with . then it only mean local
|
29
30
|
|
30
31
|
if (isRelativePath) {
|
31
32
|
global = false;
|
32
33
|
}
|
33
34
|
|
34
35
|
try {
|
35
|
-
const paths = [local && process.cwd(), global && globalNodeModules].filter(Boolean);
|
36
|
+
const paths = [local && process.cwd(), global && globalNodeModules].filter(Boolean);
|
37
|
+
console.log('path', process.cwd(), local, global); // x({ paths, globalNodeModules, global, local, opts });
|
36
38
|
|
37
39
|
const moduleResolvePath = require.resolve(moduleName, {
|
38
40
|
paths
|
39
41
|
});
|
40
42
|
|
43
|
+
console.log(moduleResolvePath, 'moduleResolvePath');
|
41
44
|
return require(moduleResolvePath);
|
42
45
|
} catch (error) {
|
43
46
|
// NOTE: since we return null we can check out side
|
package/lib/utils/getOptions.js
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@zohodesk/react-cli",
|
3
|
-
"version": "1.1.
|
3
|
+
"version": "1.1.26-exp.1",
|
4
4
|
"description": "A CLI tool for build modern web application and libraries",
|
5
5
|
"scripts": {
|
6
6
|
"init": "node ./lib/utils/init.js",
|
@@ -41,7 +41,7 @@
|
|
41
41
|
"@babel/preset-env": "7.11.0",
|
42
42
|
"@babel/preset-react": "7.10.4",
|
43
43
|
"@babel/runtime": "7.11.2",
|
44
|
-
"@zohodesk/client_packages_group": "1.0.2",
|
44
|
+
"@zohodesk/client_packages_group": "1.0.2-exp.4-redux",
|
45
45
|
"@zohodesk/eslint-plugin-react-performance": "1.0.3",
|
46
46
|
"@zohodesk/eslint-plugin-zsecurity": "0.0.1-beta.4",
|
47
47
|
"@zohodesk/postcss-rtl": "1.5.2",
|