@zohodesk/react-cli 1.1.20-exp.1 → 1.1.20-exp.3
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +0 -20
- package/lib/common/getEntries.js +17 -4
- package/lib/configs/webpack.prod.config.js +1 -4
- package/lib/loaders/workerLoader.js +24 -39
- package/lib/pluginUtils/configHtmlWebpackPlugins.js +1 -59
- package/lib/pluginUtils/getDevPlugins.js +4 -9
- package/lib/pluginUtils/getProdPlugins.js +1 -6
- package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +1 -5
- package/lib/schemas/index.js +6 -2
- package/lib/utils/index.js +20 -14
- package/npm-shrinkwrap.json +3 -17
- package/package.json +1 -1
- package/lib/plugins/CustomScriptLoadingStrategyPlugin.js +0 -111
- package/lib/plugins/EventsHandlingPlugin.js +0 -36
- package/lib/utils/typeCheck.js +0 -10
package/README.md
CHANGED
@@ -44,26 +44,6 @@ Now to run app
|
|
44
44
|
|
45
45
|
# Change Logs
|
46
46
|
|
47
|
-
# 1.1.20-exp.1
|
48
|
-
|
49
|
-
**Changes**
|
50
|
-
|
51
|
-
- Added memory leak fixes for script, links tags
|
52
|
-
|
53
|
-
**Feature**
|
54
|
-
- Custom Script loading strategy support for initial html script tags.
|
55
|
-
|
56
|
-
# 1.1.19-exp.18
|
57
|
-
|
58
|
-
**Changes**
|
59
|
-
|
60
|
-
- To do further build size optimization by utilizing webpack provided config.
|
61
|
-
|
62
|
-
```
|
63
|
-
innerGraph: true,
|
64
|
-
usedExports: true,
|
65
|
-
sideEffects: true
|
66
|
-
```
|
67
47
|
# 1.1.19 (27-5-2024)
|
68
48
|
|
69
49
|
**Feature**
|
package/lib/common/getEntries.js
CHANGED
@@ -26,16 +26,29 @@ let getEntries = (appSchemas, mode) => {
|
|
26
26
|
hasEFC: newOptionForEnableEFC
|
27
27
|
} = appSchemas.efc;
|
28
28
|
const hasEFC = newOptionForEnableEFC || prevOptionForEnableEFC;
|
29
|
-
|
30
|
-
|
29
|
+
const {
|
30
|
+
multiEntry
|
31
|
+
} = appSchemas.app;
|
32
|
+
let mainJs = []; // let payloadJs = [];
|
33
|
+
|
34
|
+
let entryObj = {};
|
35
|
+
console.log(multiEntry);
|
36
|
+
|
37
|
+
if (multiEntry.enable) {
|
38
|
+
entryObj = (0, _utils.createObjectFromArrayPairs)(multiEntry.chunkName, multiEntry.entryFileName, appPath, folder);
|
39
|
+
}
|
40
|
+
|
41
|
+
let entry = Object.assign({
|
31
42
|
main: mainJs
|
32
|
-
};
|
43
|
+
}, entryObj);
|
33
44
|
|
34
45
|
if (mode === 'dev' || mode === 'dev-no-warn') {
|
35
46
|
mainJs.push(`${_path.default.join(__dirname, '..', 'templates', 'WMSTemplate')}?wmsPath=wss:${(0, _utils.getServerURL)(server)}`);
|
36
47
|
}
|
37
48
|
|
38
|
-
mainJs.push(_path.default.join(appPath, folder, isReactMig ? 'migration.js' : 'index.js'));
|
49
|
+
mainJs.push(_path.default.join(appPath, folder, isReactMig ? 'migration.js' : 'index.js')); // payloadJs.push(
|
50
|
+
// path.join(appPath, folder, '_utils', 'payloadEncryption.js')
|
51
|
+
// );
|
39
52
|
|
40
53
|
if (hasWidget) {
|
41
54
|
entry.widget = [_path.default.join(appPath, folder, 'widget.js')];
|
@@ -102,10 +102,7 @@ module.exports = {
|
|
102
102
|
// exclude: /\/smap/
|
103
103
|
// })
|
104
104
|
// ],
|
105
|
-
moduleIds: 'named'
|
106
|
-
usedExports: true,
|
107
|
-
// innerGraph: true, // this property present on webpack 5
|
108
|
-
sideEffects: true
|
105
|
+
moduleIds: 'named'
|
109
106
|
},
|
110
107
|
stats: {
|
111
108
|
children: false,
|
@@ -19,32 +19,32 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
19
19
|
/* import WebWorkerTemplatePlugin from 'webpack/lib/webworker/WebWorkerTemplatePlugin';
|
20
20
|
import ExternalsPlugin from 'webpack/lib/ExternalsPlugin'; */
|
21
21
|
const schema = {
|
22
|
-
type: 'object',
|
23
|
-
properties: {
|
24
|
-
publicPath: {
|
25
|
-
anyOf: [{
|
26
|
-
type: 'string'
|
22
|
+
'type': 'object',
|
23
|
+
'properties': {
|
24
|
+
'publicPath': {
|
25
|
+
'anyOf': [{
|
26
|
+
'type': 'string'
|
27
27
|
}, {
|
28
|
-
instanceof: 'Function'
|
28
|
+
'instanceof': 'Function'
|
29
29
|
}]
|
30
30
|
},
|
31
|
-
filename: {
|
32
|
-
anyOf: [{
|
33
|
-
type: 'string',
|
34
|
-
minLength: 1
|
31
|
+
'filename': {
|
32
|
+
'anyOf': [{
|
33
|
+
'type': 'string',
|
34
|
+
'minLength': 1
|
35
35
|
}, {
|
36
|
-
instanceof: 'Function'
|
36
|
+
'instanceof': 'Function'
|
37
37
|
}]
|
38
38
|
},
|
39
|
-
chunkFilename: {
|
40
|
-
type: 'string',
|
41
|
-
minLength: 1
|
39
|
+
'chunkFilename': {
|
40
|
+
'type': 'string',
|
41
|
+
'minLength': 1
|
42
42
|
},
|
43
|
-
esModule: {
|
44
|
-
type: 'boolean'
|
43
|
+
'esModule': {
|
44
|
+
'type': 'boolean'
|
45
45
|
}
|
46
46
|
},
|
47
|
-
additionalProperties: false
|
47
|
+
'additionalProperties': false
|
48
48
|
}; // eslint-disable-next-line
|
49
49
|
|
50
50
|
function loader() {}
|
@@ -112,40 +112,25 @@ function pitch(request) {
|
|
112
112
|
}
|
113
113
|
|
114
114
|
function workerCode() {
|
115
|
-
if (this.workerInstance) {
|
116
|
-
return this.workerInstance;
|
117
|
-
}
|
118
|
-
|
119
115
|
let blob;
|
120
116
|
|
121
117
|
try {
|
122
118
|
blob = new Blob([`importScripts('${this.workerUrl}');`], {
|
123
|
-
type: 'application/javascript'
|
119
|
+
'type': 'application/javascript'
|
124
120
|
});
|
125
121
|
} catch (e1) {
|
126
122
|
throw new Error(e1);
|
127
123
|
}
|
128
124
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
return
|
125
|
+
let url = window.URL || window.webkitURL;
|
126
|
+
let blobUrl = url.createObjectURL(blob);
|
127
|
+
let worker = new Worker(blobUrl);
|
128
|
+
return worker;
|
133
129
|
}
|
134
130
|
|
135
|
-
return cb(null,
|
136
|
-
workerInstance: null, \n
|
131
|
+
return cb(null, `${options.esModule ? 'export default' : 'module.exports ='} {\n
|
137
132
|
workerUrl: __webpack_public_path__ + ${JSON.stringify(entry)}, \n
|
138
133
|
getInstance: ${workerCode} \n
|
139
|
-
}
|
140
|
-
workerObj.getInstance();
|
141
|
-
${options.esModule ? 'export default' : 'module.exports ='} workerObj;
|
142
|
-
`); // return cb(
|
143
|
-
// null,
|
144
|
-
// `${options.esModule ? 'export default' : 'module.exports ='} {\n
|
145
|
-
// workerInstance: null, \n
|
146
|
-
// workerUrl: __webpack_public_path__ + ${JSON.stringify(entry)}, \n
|
147
|
-
// getInstance: ${workerCode} \n
|
148
|
-
// }`
|
149
|
-
// );
|
134
|
+
}`);
|
150
135
|
});
|
151
136
|
}
|
@@ -13,10 +13,6 @@ var _htmlWebpackInjectAttributesPlugin = _interopRequireDefault(require("html-we
|
|
13
13
|
|
14
14
|
var _common = require("../common");
|
15
15
|
|
16
|
-
var _utils = require("../utils");
|
17
|
-
|
18
|
-
var _CustomScriptLoadingStrategyPlugin = _interopRequireDefault(require("../plugins/CustomScriptLoadingStrategyPlugin"));
|
19
|
-
|
20
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
21
17
|
|
22
18
|
const defaultHTMLMiniFyOption = {
|
@@ -30,47 +26,6 @@ const defaultHTMLMiniFyOption = {
|
|
30
26
|
removeStyleLinkTypeAttributes: true,
|
31
27
|
useShortDoctype: true
|
32
28
|
};
|
33
|
-
const defaultScriptLoadingStrategy = 'defer';
|
34
|
-
const allowedScriptLoadingStrategies = ['blocking', 'defer', 'async', 'module'];
|
35
|
-
|
36
|
-
function isAllowedScriptLoadingStrategyUsed(scriptLoadingStategey) {
|
37
|
-
return allowedScriptLoadingStrategies.includes(scriptLoadingStategey);
|
38
|
-
}
|
39
|
-
|
40
|
-
function getScriptLoadingStrategyForStringType(scriptLoadingStategey) {
|
41
|
-
if (isAllowedScriptLoadingStrategyUsed(scriptLoadingStategey)) {
|
42
|
-
return scriptLoadingStategey;
|
43
|
-
}
|
44
|
-
|
45
|
-
return defaultScriptLoadingStrategy;
|
46
|
-
}
|
47
|
-
|
48
|
-
function getScriptLoadingStrategyForObject(scriptLoadingStategey) {
|
49
|
-
if (Object.keys(scriptLoadingStategey).length === 0) {
|
50
|
-
return defaultScriptLoadingStrategy;
|
51
|
-
}
|
52
|
-
|
53
|
-
const isAllowedScriptLoadingStrategy = Object.keys(scriptLoadingStategey).every(key => isAllowedScriptLoadingStrategyUsed(key));
|
54
|
-
|
55
|
-
if (isAllowedScriptLoadingStrategy) {
|
56
|
-
return Object.assign({}, scriptLoadingStategey);
|
57
|
-
}
|
58
|
-
|
59
|
-
console.warn('un supported script loading strategy used', scriptLoadingStategey);
|
60
|
-
return defaultScriptLoadingStrategy;
|
61
|
-
}
|
62
|
-
|
63
|
-
function getScriptLoadingStrategy(scriptLoadingStategey) {
|
64
|
-
if ((0, _utils.getTypeOf)(scriptLoadingStategey) === 'string') {
|
65
|
-
return getScriptLoadingStrategyForStringType(scriptLoadingStategey);
|
66
|
-
}
|
67
|
-
|
68
|
-
if ((0, _utils.getTypeOf)(scriptLoadingStategey) === 'object') {
|
69
|
-
return getScriptLoadingStrategyForObject(scriptLoadingStategey);
|
70
|
-
}
|
71
|
-
|
72
|
-
return 'defer';
|
73
|
-
}
|
74
29
|
|
75
30
|
function configHtmlWebpackPlugins(plugins, {
|
76
31
|
enableChunkHash = false,
|
@@ -78,8 +33,7 @@ function configHtmlWebpackPlugins(plugins, {
|
|
78
33
|
inject,
|
79
34
|
crossorigin,
|
80
35
|
hasEFC,
|
81
|
-
minify: minifyHtmlOptions = false
|
82
|
-
customScriptLoadingStrategey
|
36
|
+
minify: minifyHtmlOptions = false
|
83
37
|
}) {
|
84
38
|
const optionsHtmlWebpack = {
|
85
39
|
chunksSortMode: 'none',
|
@@ -102,16 +56,4 @@ function configHtmlWebpackPlugins(plugins, {
|
|
102
56
|
crossorigin && plugins.push(new _htmlWebpackInjectAttributesPlugin.default({
|
103
57
|
crossorigin: 'anonymous'
|
104
58
|
}));
|
105
|
-
|
106
|
-
if (customScriptLoadingStrategey) {
|
107
|
-
console.log('script loading stategy', customScriptLoadingStrategey);
|
108
|
-
const currentScriptLoadingStrategy = getScriptLoadingStrategy(customScriptLoadingStrategey);
|
109
|
-
console.log('currentscriptloading strategy', currentScriptLoadingStrategy);
|
110
|
-
|
111
|
-
if ((0, _utils.getTypeOf)(currentScriptLoadingStrategy) === 'object') {
|
112
|
-
plugins.push(new _CustomScriptLoadingStrategyPlugin.default({
|
113
|
-
scriptLoadingStategey: currentScriptLoadingStrategy
|
114
|
-
}));
|
115
|
-
}
|
116
|
-
}
|
117
59
|
}
|
@@ -37,8 +37,6 @@ var _configHtmlWebpackPlugins = require("./configHtmlWebpackPlugins");
|
|
37
37
|
|
38
38
|
var _EfcResourceCleanupPlugin = _interopRequireDefault(require("../plugins/EfcResourceCleanupPlugin"));
|
39
39
|
|
40
|
-
var _EventsHandlingPlugin = require("../plugins/EventsHandlingPlugin");
|
41
|
-
|
42
40
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
43
41
|
|
44
42
|
// import { windowsModification } from '../loaderUtils/windowsModification';
|
@@ -62,8 +60,7 @@ const getDevPlugins = (options, publicPath) => {
|
|
62
60
|
mode
|
63
61
|
},
|
64
62
|
htmlTemplate: {
|
65
|
-
inject
|
66
|
-
customScriptLoadingStrategey
|
63
|
+
inject
|
67
64
|
},
|
68
65
|
crossorigin
|
69
66
|
},
|
@@ -169,8 +166,7 @@ const getDevPlugins = (options, publicPath) => {
|
|
169
166
|
minify: false,
|
170
167
|
inject,
|
171
168
|
crossorigin,
|
172
|
-
hasEFC
|
173
|
-
customScriptLoadingStrategey
|
169
|
+
hasEFC
|
174
170
|
});
|
175
171
|
|
176
172
|
if (hasEFC) {
|
@@ -221,13 +217,12 @@ const getDevPlugins = (options, publicPath) => {
|
|
221
217
|
exclude: exclude.selectorWeight,
|
222
218
|
patterns
|
223
219
|
}));
|
224
|
-
}
|
225
|
-
|
226
|
-
pluginsArr.push(new _EventsHandlingPlugin.EventsHandlingPlugin()); // if (pluginObject.minifier) {
|
220
|
+
} // if (pluginObject.minifier) {
|
227
221
|
// // console.log('minifier active');
|
228
222
|
// pluginsArr.push(new MinifierPlugin());
|
229
223
|
// }
|
230
224
|
|
225
|
+
|
231
226
|
return pluginsArr.filter(Boolean);
|
232
227
|
};
|
233
228
|
|
@@ -27,8 +27,6 @@ var _VariableConversionCollector = _interopRequireDefault(require("../plugins/Va
|
|
27
27
|
|
28
28
|
var _SelectorPlugin = _interopRequireDefault(require("../plugins/SelectorPlugin"));
|
29
29
|
|
30
|
-
var _EventsHandlingPlugin = require("../plugins/EventsHandlingPlugin");
|
31
|
-
|
32
30
|
var _plugins = require("../plugins");
|
33
31
|
|
34
32
|
var _CustomAttributePlugin = require("../plugins/CustomAttributePlugin");
|
@@ -80,8 +78,7 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
80
78
|
} = options.app;
|
81
79
|
const {
|
82
80
|
inject,
|
83
|
-
minify: minifyHtmlOptions
|
84
|
-
customScriptLoadingStrategey
|
81
|
+
minify: minifyHtmlOptions
|
85
82
|
} = htmlTemplate;
|
86
83
|
const {
|
87
84
|
i18n
|
@@ -179,7 +176,6 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
179
176
|
folder,
|
180
177
|
inject,
|
181
178
|
minify: minifyHtmlOptions,
|
182
|
-
customScriptLoadingStrategey,
|
183
179
|
crossorigin,
|
184
180
|
hasEFC
|
185
181
|
});
|
@@ -310,7 +306,6 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
310
306
|
statsOutputExcludeKeys,
|
311
307
|
statsFileName
|
312
308
|
}));
|
313
|
-
pluginsArr.push(new _EventsHandlingPlugin.EventsHandlingPlugin());
|
314
309
|
return pluginsArr;
|
315
310
|
};
|
316
311
|
|
@@ -228,12 +228,8 @@ class I18nDownlodLogic {
|
|
228
228
|
if(dataSrc === srcPath || dataSrc === fullsrcPath){ return resolve();}
|
229
229
|
}
|
230
230
|
var scriptTag = document.createElement("script");
|
231
|
-
scriptTag.onload =
|
232
|
-
scriptTag.onerror = scriptTag.onload = null;
|
233
|
-
resolve();
|
234
|
-
};
|
231
|
+
scriptTag.onload = resolve;
|
235
232
|
scriptTag.onerror = function(event) {
|
236
|
-
scriptTag.onerror = scriptTag.onload = null;
|
237
233
|
var request = event && event.target && event.target.src || fullsrcPath;
|
238
234
|
var err = new Error("Loading I18N chunk " + chunkId + " failed.\\n(" + request + ")");
|
239
235
|
err.code = "I18N_CHUNK_LOAD_FAILED";
|
package/lib/schemas/index.js
CHANGED
@@ -125,6 +125,11 @@ var _default = {
|
|
125
125
|
cssDirStatement: null
|
126
126
|
},
|
127
127
|
app: {
|
128
|
+
multiEntry: {
|
129
|
+
enable: true,
|
130
|
+
chunkName: [],
|
131
|
+
entryFileName: []
|
132
|
+
},
|
128
133
|
moduleResolvePath: {
|
129
134
|
value: '@zohodesk/client_packages_group',
|
130
135
|
cli: 'module_resolve_path'
|
@@ -322,8 +327,7 @@ var _default = {
|
|
322
327
|
},
|
323
328
|
htmlTemplate: {
|
324
329
|
minify: null,
|
325
|
-
inject: true
|
326
|
-
customScriptLoadingStrategey: null
|
330
|
+
inject: true
|
327
331
|
},
|
328
332
|
removePropTypes: false,
|
329
333
|
customChunksBaseConfig: null,
|
package/lib/utils/index.js
CHANGED
@@ -7,6 +7,7 @@ var _exportNames = {
|
|
7
7
|
writeFile: true,
|
8
8
|
makeDir: true,
|
9
9
|
getInfoFromPublicPaths: true,
|
10
|
+
createObjectFromArrayPairs: true,
|
10
11
|
getLibraryConflict: true,
|
11
12
|
log: true,
|
12
13
|
getOptions: true,
|
@@ -27,6 +28,7 @@ Object.defineProperty(exports, "createEventStream", {
|
|
27
28
|
return _createEventStream.default;
|
28
29
|
}
|
29
30
|
});
|
31
|
+
exports.createObjectFromArrayPairs = void 0;
|
30
32
|
Object.defineProperty(exports, "getComponents", {
|
31
33
|
enumerable: true,
|
32
34
|
get: function () {
|
@@ -103,6 +105,8 @@ var _fs = _interopRequireDefault(require("fs"));
|
|
103
105
|
|
104
106
|
var _log = require("./log");
|
105
107
|
|
108
|
+
var _path = _interopRequireDefault(require("path"));
|
109
|
+
|
106
110
|
var _getOptions = _interopRequireDefault(require("./getOptions"));
|
107
111
|
|
108
112
|
var _createEventStream = _interopRequireDefault(require("./createEventStream"));
|
@@ -167,20 +171,6 @@ var _getComponents = _interopRequireDefault(require("./getComponents"));
|
|
167
171
|
|
168
172
|
var _ssTestHack = _interopRequireDefault(require("./ssTestHack"));
|
169
173
|
|
170
|
-
var _typeCheck = require("./typeCheck");
|
171
|
-
|
172
|
-
Object.keys(_typeCheck).forEach(function (key) {
|
173
|
-
if (key === "default" || key === "__esModule") return;
|
174
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
175
|
-
if (key in exports && exports[key] === _typeCheck[key]) return;
|
176
|
-
Object.defineProperty(exports, key, {
|
177
|
-
enumerable: true,
|
178
|
-
get: function () {
|
179
|
-
return _typeCheck[key];
|
180
|
-
}
|
181
|
-
});
|
182
|
-
});
|
183
|
-
|
184
174
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
185
175
|
|
186
176
|
// eslint-disable-next-line no-duplicate-imports
|
@@ -253,6 +243,22 @@ let getInfoFromPublicPaths = publicPaths => {
|
|
253
243
|
|
254
244
|
exports.getInfoFromPublicPaths = getInfoFromPublicPaths;
|
255
245
|
|
246
|
+
let createObjectFromArrayPairs = (arr1, arr2, appPath, folder) => {
|
247
|
+
if (arr1.length !== arr2.length) {
|
248
|
+
throw new Error('multiple chunk entry wrongly configured check the getEntries.js and react-cli.config.js file ');
|
249
|
+
}
|
250
|
+
|
251
|
+
const obj = {};
|
252
|
+
|
253
|
+
for (let i = 0; i < arr1.length; i++) {
|
254
|
+
obj[arr1[i]] = [_path.default.join(appPath, folder, arr2[i])];
|
255
|
+
}
|
256
|
+
|
257
|
+
return obj;
|
258
|
+
};
|
259
|
+
|
260
|
+
exports.createObjectFromArrayPairs = createObjectFromArrayPairs;
|
261
|
+
|
256
262
|
let getLibraryConflict = (moduleObject, impactObj, changesOnly) => {
|
257
263
|
let srcChanges = [];
|
258
264
|
let libraryChanges = [];
|
package/npm-shrinkwrap.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@zohodesk/react-cli",
|
3
|
-
"version": "1.1.
|
3
|
+
"version": "1.1.18-exp.1",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "@zohodesk/react-cli",
|
9
|
-
"version": "1.1.
|
9
|
+
"version": "1.1.18-exp.1",
|
10
10
|
"license": "ISC",
|
11
11
|
"dependencies": {
|
12
12
|
"@babel/cli": "7.10.5",
|
@@ -4554,7 +4554,6 @@
|
|
4554
4554
|
"version": "2.7.1",
|
4555
4555
|
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
|
4556
4556
|
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
|
4557
|
-
"deprecated": "Rimraf versions prior to v4 are no longer supported",
|
4558
4557
|
"dependencies": {
|
4559
4558
|
"glob": "^7.1.3"
|
4560
4559
|
},
|
@@ -5223,7 +5222,6 @@
|
|
5223
5222
|
"version": "1.0.5",
|
5224
5223
|
"resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
|
5225
5224
|
"integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
|
5226
|
-
"deprecated": "This package is no longer supported.",
|
5227
5225
|
"dependencies": {
|
5228
5226
|
"aproba": "^1.1.1",
|
5229
5227
|
"fs-write-stream-atomic": "^1.0.8",
|
@@ -5237,7 +5235,6 @@
|
|
5237
5235
|
"version": "2.7.1",
|
5238
5236
|
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
|
5239
5237
|
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
|
5240
|
-
"deprecated": "Rimraf versions prior to v4 are no longer supported",
|
5241
5238
|
"dependencies": {
|
5242
5239
|
"glob": "^7.1.3"
|
5243
5240
|
},
|
@@ -7587,7 +7584,6 @@
|
|
7587
7584
|
"version": "2.6.3",
|
7588
7585
|
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
|
7589
7586
|
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
|
7590
|
-
"deprecated": "Rimraf versions prior to v4 are no longer supported",
|
7591
7587
|
"dependencies": {
|
7592
7588
|
"glob": "^7.1.3"
|
7593
7589
|
},
|
@@ -7731,7 +7727,6 @@
|
|
7731
7727
|
"version": "1.0.10",
|
7732
7728
|
"resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
|
7733
7729
|
"integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==",
|
7734
|
-
"deprecated": "This package is no longer supported.",
|
7735
7730
|
"dependencies": {
|
7736
7731
|
"graceful-fs": "^4.1.2",
|
7737
7732
|
"iferr": "^0.1.5",
|
@@ -8075,7 +8070,6 @@
|
|
8075
8070
|
"version": "7.2.3",
|
8076
8071
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
|
8077
8072
|
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
|
8078
|
-
"deprecated": "Glob versions prior to v9 are no longer supported",
|
8079
8073
|
"dependencies": {
|
8080
8074
|
"fs.realpath": "^1.0.0",
|
8081
8075
|
"inflight": "^1.0.4",
|
@@ -8226,7 +8220,6 @@
|
|
8226
8220
|
"version": "7.1.7",
|
8227
8221
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
|
8228
8222
|
"integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
|
8229
|
-
"deprecated": "Glob versions prior to v9 are no longer supported",
|
8230
8223
|
"dependencies": {
|
8231
8224
|
"fs.realpath": "^1.0.0",
|
8232
8225
|
"inflight": "^1.0.4",
|
@@ -9108,7 +9101,6 @@
|
|
9108
9101
|
"version": "1.0.6",
|
9109
9102
|
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
9110
9103
|
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
|
9111
|
-
"deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
|
9112
9104
|
"dependencies": {
|
9113
9105
|
"once": "^1.3.0",
|
9114
9106
|
"wrappy": "1"
|
@@ -12746,7 +12738,6 @@
|
|
12746
12738
|
"version": "1.0.1",
|
12747
12739
|
"resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
|
12748
12740
|
"integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==",
|
12749
|
-
"deprecated": "This package is no longer supported.",
|
12750
12741
|
"dependencies": {
|
12751
12742
|
"aproba": "^1.1.1",
|
12752
12743
|
"copy-concurrently": "^1.0.0",
|
@@ -12760,7 +12751,6 @@
|
|
12760
12751
|
"version": "2.7.1",
|
12761
12752
|
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
|
12762
12753
|
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
|
12763
|
-
"deprecated": "Rimraf versions prior to v4 are no longer supported",
|
12764
12754
|
"dependencies": {
|
12765
12755
|
"glob": "^7.1.3"
|
12766
12756
|
},
|
@@ -15689,7 +15679,6 @@
|
|
15689
15679
|
"version": "3.0.2",
|
15690
15680
|
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
|
15691
15681
|
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
|
15692
|
-
"deprecated": "Rimraf versions prior to v4 are no longer supported",
|
15693
15682
|
"dependencies": {
|
15694
15683
|
"glob": "^7.1.3"
|
15695
15684
|
},
|
@@ -15811,8 +15800,7 @@
|
|
15811
15800
|
"node_modules/safe-require": {
|
15812
15801
|
"version": "1.0.4",
|
15813
15802
|
"resolved": "https://registry.npmjs.org/safe-require/-/safe-require-1.0.4.tgz",
|
15814
|
-
"integrity": "sha512-1elAbSH1u7HVMfbuqktLWAN0wMOeT+FnJVqMhBgEJLvL95m+KT433tiJdGMV1e3TstQXRt1YrKQDRBu0Kpk4WA=="
|
15815
|
-
"deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."
|
15803
|
+
"integrity": "sha512-1elAbSH1u7HVMfbuqktLWAN0wMOeT+FnJVqMhBgEJLvL95m+KT433tiJdGMV1e3TstQXRt1YrKQDRBu0Kpk4WA=="
|
15816
15804
|
},
|
15817
15805
|
"node_modules/safer-buffer": {
|
15818
15806
|
"version": "2.1.2",
|
@@ -15929,7 +15917,6 @@
|
|
15929
15917
|
"version": "2.7.1",
|
15930
15918
|
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
|
15931
15919
|
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
|
15932
|
-
"deprecated": "Rimraf versions prior to v4 are no longer supported",
|
15933
15920
|
"dependencies": {
|
15934
15921
|
"glob": "^7.1.3"
|
15935
15922
|
},
|
@@ -18046,7 +18033,6 @@
|
|
18046
18033
|
"version": "7.1.7",
|
18047
18034
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
|
18048
18035
|
"integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
|
18049
|
-
"deprecated": "Glob versions prior to v9 are no longer supported",
|
18050
18036
|
"dependencies": {
|
18051
18037
|
"fs.realpath": "^1.0.0",
|
18052
18038
|
"inflight": "^1.0.4",
|
package/package.json
CHANGED
@@ -1,111 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.default = void 0;
|
7
|
-
|
8
|
-
var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin"));
|
9
|
-
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11
|
-
|
12
|
-
const pluginName = 'CustomScriptLoadingStrategyPlugin';
|
13
|
-
|
14
|
-
class CustomScriptLoadingStrategyPlugin {
|
15
|
-
constructor({
|
16
|
-
scriptLoadingStategey
|
17
|
-
} = {}) {
|
18
|
-
this.scriptLoadingStrategy = scriptLoadingStategey;
|
19
|
-
}
|
20
|
-
|
21
|
-
getFileNameFromTagSrc(src) {
|
22
|
-
const fileNameArr = src.split('/');
|
23
|
-
return fileNameArr[fileNameArr.length - 1];
|
24
|
-
}
|
25
|
-
|
26
|
-
addAttributestToTag(tag, attributes) {
|
27
|
-
tag.attributes = Object.assign({}, tag.attributes, attributes);
|
28
|
-
}
|
29
|
-
|
30
|
-
matchFileName(tag, fileName) {
|
31
|
-
return fileName.test(this.getFileNameFromTagSrc(tag.attributes.src));
|
32
|
-
}
|
33
|
-
|
34
|
-
blockingStrategy(tag) {
|
35
|
-
delete tag.attributes.defer;
|
36
|
-
delete tag.attributes.async;
|
37
|
-
}
|
38
|
-
|
39
|
-
deferStrategy(tag) {
|
40
|
-
delete tag.attributes.async;
|
41
|
-
}
|
42
|
-
|
43
|
-
asyncStrategy(tag) {
|
44
|
-
delete tag.attributes.defer;
|
45
|
-
}
|
46
|
-
|
47
|
-
moduleStrategy(tag) {
|
48
|
-
this.deferStrategy(tag);
|
49
|
-
}
|
50
|
-
|
51
|
-
matchStrategy(scriptLoadingStrategy, tag) {
|
52
|
-
if (scriptLoadingStrategy === 'blocking') {
|
53
|
-
this.blockingStrategy(tag);
|
54
|
-
}
|
55
|
-
|
56
|
-
if (scriptLoadingStrategy === 'defer') {
|
57
|
-
this.deferStrategy(tag);
|
58
|
-
}
|
59
|
-
|
60
|
-
if (scriptLoadingStrategy === 'async') {
|
61
|
-
this.asyncStrategy(tag);
|
62
|
-
}
|
63
|
-
|
64
|
-
if (scriptLoadingStrategy === 'module') {
|
65
|
-
this.moduleStrategy(tag);
|
66
|
-
}
|
67
|
-
}
|
68
|
-
|
69
|
-
matchAndApplyCustomLoadingStrategyToScripts(tags) {
|
70
|
-
Object.keys(this.scriptLoadingStrategy).forEach(scriptLoadingStrategy => {
|
71
|
-
console.log('sc', scriptLoadingStrategy);
|
72
|
-
const filesToMatch = this.scriptLoadingStrategy[scriptLoadingStrategy];
|
73
|
-
tags.forEach(tag => {
|
74
|
-
if (tag.attributes.src) {
|
75
|
-
const isFileMatch = filesToMatch.some(fileName => this.matchFileName(tag, fileName));
|
76
|
-
|
77
|
-
if (isFileMatch) {
|
78
|
-
this.matchStrategy(scriptLoadingStrategy, tag);
|
79
|
-
this.addAttributestToTag(tag, {
|
80
|
-
[scriptLoadingStrategy]: true
|
81
|
-
});
|
82
|
-
}
|
83
|
-
} // filesToMatch.forEach(fileName => {
|
84
|
-
// if (!this.matchFileName(tag, fileName)) {
|
85
|
-
// return;
|
86
|
-
// }
|
87
|
-
// this.matchStrategy(scriptLoadingStrategy, tag);
|
88
|
-
// this.addAttributestToTag(tag, fileName, {
|
89
|
-
// [scriptLoadingStrategy]: true
|
90
|
-
// });
|
91
|
-
// });
|
92
|
-
|
93
|
-
});
|
94
|
-
});
|
95
|
-
}
|
96
|
-
|
97
|
-
apply(compiler) {
|
98
|
-
compiler.hooks.compilation.tap(pluginName, compilation => {
|
99
|
-
_htmlWebpackPlugin.default.getHooks(compilation).alterAssetTagGroups.tapAsync(pluginName, (data, callback) => {
|
100
|
-
const tags = [...data.bodyTags, ...data.headTags];
|
101
|
-
console.log('tags', tags);
|
102
|
-
this.matchAndApplyCustomLoadingStrategyToScripts(tags);
|
103
|
-
console.log('tags after', tags);
|
104
|
-
callback(null, data);
|
105
|
-
});
|
106
|
-
});
|
107
|
-
}
|
108
|
-
|
109
|
-
}
|
110
|
-
|
111
|
-
exports.default = CustomScriptLoadingStrategyPlugin;
|
@@ -1,36 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.EventsHandlingPlugin = void 0;
|
7
|
-
|
8
|
-
/* eslint-disable no-use-before-define */
|
9
|
-
class EventsHandlingPlugin {
|
10
|
-
constructor(options) {}
|
11
|
-
|
12
|
-
apply(compiler) {
|
13
|
-
console.log("hi"); // NOTE: we not using this, Reason currently this option is only need for EFC,
|
14
|
-
// So it do not needed.
|
15
|
-
|
16
|
-
compiler.hooks.thisCompilation.tap({
|
17
|
-
name: 'CustomAttributePlugin',
|
18
|
-
stage: 1,
|
19
|
-
fn: compilation => {
|
20
|
-
compilation.mainTemplate.hooks.requireEnsure.tap('CustomAttributePlugin', source => {
|
21
|
-
// const str = attributeSetTemplate(cssAttributes, 'linkTag');
|
22
|
-
const replacesourcedStr = source.replace('linkTag.onerror = function(event) {', 'linkTag.onerror = function(event) { linkTag.onerror = linkTag.onload = null');
|
23
|
-
const re = replacesourcedStr.replace('linkTag.onload = resolve', `linkTag.onload = () => {
|
24
|
-
linkTag.onerror = linkTag.onload = null;
|
25
|
-
resolve();
|
26
|
-
};`); // console.log({ s: source, r: replacedStr });
|
27
|
-
|
28
|
-
return re;
|
29
|
-
});
|
30
|
-
}
|
31
|
-
});
|
32
|
-
}
|
33
|
-
|
34
|
-
}
|
35
|
-
|
36
|
-
exports.EventsHandlingPlugin = EventsHandlingPlugin;
|
package/lib/utils/typeCheck.js
DELETED