@zohodesk/react-cli 1.1.16-exp.6 → 1.1.16-exp.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. package/bin/cli.js +4 -0
  2. package/lib/babel/cmjs-plugins-presets.js +6 -5
  3. package/lib/babel/es-plugins-presets.js +6 -5
  4. package/lib/configs/webpack.dev.config.js +4 -0
  5. package/lib/configs/webpack.prod.config.js +6 -2
  6. package/lib/schemas/index.js +2 -1
  7. package/npm-shrinkwrap.json +2 -2
  8. package/package.json +4 -1
  9. package/packages/client_build_tool/lib/allCommandsConfigs.js +0 -23
  10. package/packages/client_build_tool/lib/buildToolLoggers.js +0 -32
  11. package/packages/client_build_tool/lib/commands/build/commandExecutor.js +0 -21
  12. package/packages/client_build_tool/lib/commands/build/config.js +0 -12
  13. package/packages/client_build_tool/lib/commands/build/errorHander.js +0 -10
  14. package/packages/client_build_tool/lib/commands/build/index.js +0 -35
  15. package/packages/client_build_tool/lib/commands/build/optionsProcesser.js +0 -40
  16. package/packages/client_build_tool/lib/commands/buildEs/commandExecutor.js +0 -17
  17. package/packages/client_build_tool/lib/commands/buildEs/config.js +0 -12
  18. package/packages/client_build_tool/lib/commands/buildLib/commandExecutor.js +0 -17
  19. package/packages/client_build_tool/lib/commands/buildLib/config.js +0 -12
  20. package/packages/client_build_tool/lib/commands/start/commandExecutor.js +0 -13
  21. package/packages/client_build_tool/lib/commands/start/config.js +0 -12
  22. package/packages/client_build_tool/lib/commands/start/deprecationHandler.js +0 -10
  23. package/packages/client_build_tool/lib/commands/start/errorHander.js +0 -10
  24. package/packages/client_build_tool/lib/commands/start/optionsProcesser.js +0 -36
  25. package/packages/client_build_tool/lib/commands/start/postProcesser.js +0 -10
  26. package/packages/client_build_tool/lib/commands/start/preProcesser.js +0 -10
  27. package/packages/client_build_tool/lib/commandsRouter.js +0 -71
  28. package/packages/client_build_tool/lib/shared/bundler/webpack/common/decidePublicPath.js +0 -44
  29. package/packages/client_build_tool/lib/shared/bundler/webpack/common/libAlias.js +0 -31
  30. package/packages/client_build_tool/lib/shared/bundler/webpack/common/nameTemplates.js +0 -51
  31. package/packages/client_build_tool/lib/shared/bundler/webpack/common/resourceBasedPublicPath.js +0 -21
  32. package/packages/client_build_tool/lib/shared/bundler/webpack/cssLoaders.js +0 -16
  33. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin.js +0 -111
  34. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/EFCPlugin.js +0 -1
  35. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ContributionGuide.md +0 -11
  36. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nKeysIdentifer.js +0 -136
  37. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nSplit.md +0 -95
  38. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/README.md +0 -25
  39. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/constants.js +0 -29
  40. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/createHash.js +0 -24
  41. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nDependency.js +0 -99
  42. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nLoadingRuntimeModule.js +0 -81
  43. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nModule.js +0 -201
  44. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/index.js +0 -401
  45. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/optionsHandler.js +0 -67
  46. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/pathCreator.js +0 -23
  47. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/readI18nValues.js +0 -29
  48. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateFileName.js +0 -49
  49. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateHashHelpers.js +0 -77
  50. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectI18nKeys.js +0 -63
  51. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/hashUtils.js +0 -19
  52. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/index.js +0 -31
  53. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/propertiesUtils.js +0 -127
  54. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RTLSplitPlugin.js +0 -1
  55. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +0 -63
  56. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtlCssPlugin.js +0 -89
  57. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtrSplit.md +0 -34
  58. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/replaceCssDirTemplate.js +0 -15
  59. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPlugin.js +0 -155
  60. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin.js +0 -49
  61. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_postcss_loaders/ExcludePlugin.js +0 -58
  62. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_postcss_loaders/RTLSplitPlugin.js +0 -139
  63. package/packages/client_build_tool/lib/shared/bundler/webpack/devServerConfig.js +0 -34
  64. package/packages/client_build_tool/lib/shared/bundler/webpack/getCSSLoaders.js +0 -30
  65. package/packages/client_build_tool/lib/shared/bundler/webpack/jsLoaders.js +0 -17
  66. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/assetLoaders.js +0 -14
  67. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/babelLoaderConfig.js +0 -24
  68. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configHtmlTemplateLoader.js +0 -18
  69. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configWebWorkerLoader.js +0 -21
  70. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configsAssetsLoaders.js +0 -138
  71. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/cssClassNameGenerate.js +0 -83
  72. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/getCssLoaderOptions.js +0 -23
  73. package/packages/client_build_tool/lib/shared/bundler/webpack/loaders/workerLoader.js +0 -133
  74. package/packages/client_build_tool/lib/shared/bundler/webpack/optimizationConfig.js +0 -39
  75. package/packages/client_build_tool/lib/shared/bundler/webpack/outputConfig.js +0 -28
  76. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCdnChangePlugin.js +0 -18
  77. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCopyThirdpartyFile.js +0 -38
  78. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configEnvVariables.js +0 -24
  79. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configHtmlWebpackPlugin.js +0 -28
  80. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configI18nSplitPlugin.js +0 -35
  81. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configIgnorePlugin.js +0 -16
  82. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configMiniCSSExtractPlugin.js +0 -23
  83. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configProgressPlugin.js +0 -19
  84. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configRtlCssPlugin.js +0 -27
  85. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configServiceWorkerPlugin.js +0 -18
  86. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configUglifyCSSPlugin.js +0 -15
  87. package/packages/client_build_tool/lib/shared/bundler/webpack/plugins.js +0 -39
  88. package/packages/client_build_tool/lib/shared/bundler/webpack/postcssPlugins.js +0 -36
  89. package/packages/client_build_tool/lib/shared/bundler/webpack/resolvers.js +0 -42
  90. package/packages/client_build_tool/lib/shared/bundler/webpack/splitChunksConfig.js +0 -12
  91. package/packages/client_build_tool/lib/shared/bundler/webpack/webpack.dev.config.js +0 -17
  92. package/packages/client_build_tool/lib/shared/bundler/webpack/webpackBuild.js +0 -24
  93. package/packages/client_build_tool/lib/shared/bundler/webpack/webpackConfig.js +0 -50
  94. package/packages/client_build_tool/lib/shared/commands-utlis/doBasicRequiermentCheck.js +0 -16
  95. package/packages/client_build_tool/lib/shared/commands-utlis/getCliPath.js +0 -38
  96. package/packages/client_build_tool/lib/shared/commands-utlis/index.js +0 -29
  97. package/packages/client_build_tool/lib/shared/commands-utlis/log.js +0 -13
  98. package/packages/client_build_tool/lib/shared/commands-utlis/readArgsFormCommandLine.js +0 -11
  99. package/packages/client_build_tool/lib/shared/commands-utlis/readOptionFormCommandLine.js +0 -11
  100. package/packages/client_build_tool/lib/shared/commands-utlis/spanSync.js +0 -35
  101. package/packages/client_build_tool/lib/shared/constants.js +0 -33
  102. package/packages/client_build_tool/lib/shared/schemas/applyValuesToShema.js +0 -37
  103. package/packages/client_build_tool/lib/shared/schemas/cliArgsToObject.js +0 -37
  104. package/packages/client_build_tool/lib/shared/schemas/defaultConfigValues.js +0 -119
  105. package/packages/client_build_tool/lib/shared/schemas/deprecatedOptionsHandler.js +0 -65
  106. package/packages/client_build_tool/lib/shared/schemas/getCWD.js +0 -23
  107. package/packages/client_build_tool/lib/shared/schemas/getNpmVersion.js +0 -21
  108. package/packages/client_build_tool/lib/shared/schemas/npmConfigToObject.js +0 -32
  109. package/packages/client_build_tool/lib/shared/schemas/oldDefaultConfigValues.js +0 -480
  110. package/packages/client_build_tool/lib/shared/schemas/readOptions.js +0 -55
  111. package/packages/client_build_tool/lib/shared/schemas/readOptionsForPackageJson.js +0 -26
  112. package/packages/client_build_tool/lib/shared/schemas/readOptionsOld.js +0 -152
  113. package/packages/client_build_tool/lib/shared/server/cert/Tsicsezwild-22-23.crt +0 -37
  114. package/packages/client_build_tool/lib/shared/server/cert/Tsicsezwild-22-23.key +0 -27
  115. package/packages/client_build_tool/lib/shared/server/configWebpackDevMiddleware.js +0 -40
  116. package/packages/client_build_tool/lib/shared/server/corsHandleing.js +0 -28
  117. package/packages/client_build_tool/lib/shared/server/getIp.js +0 -30
  118. package/packages/client_build_tool/lib/shared/server/getServerURL.js +0 -29
  119. package/packages/client_build_tool/lib/shared/server/httpsOptions.js +0 -53
  120. package/packages/client_build_tool/lib/shared/server/initExpressApp.js +0 -19
  121. package/packages/client_build_tool/lib/shared/server/initialHTMLHandling.js +0 -66
  122. package/packages/client_build_tool/lib/shared/server/serveContextFiles.js +0 -24
  123. package/packages/client_build_tool/lib/shared/server/serverBywebpackDevMiddleware.js +0 -40
  124. package/packages/client_build_tool/lib/shared/server/startHttpServer.js +0 -26
  125. package/packages/client_build_tool/lib/shared/server/startHttpsServer.js +0 -34
  126. package/packages/client_build_tool/lib/shared/server/unwanted/addHttp2Server.js +0 -41
  127. package/packages/client_build_tool/lib/shared/server/unwanted/configWebpackDevMiddleware.js +0 -44
  128. package/packages/client_build_tool/lib/shared/server/unwanted/devServerUtlis.js +0 -1
  129. package/packages/client_build_tool/lib/shared/server/unwanted/mockApiSupport.js +0 -19
  130. package/packages/client_build_tool/lib/shared/server/unwanted/webpackConfig.js +0 -32
  131. package/packages/client_build_tool/lib/shared/server/unwanted/websocketMockSetup.js +0 -48
  132. package/packages/client_build_tool/lib/shared/server/urlConcat.js +0 -25
  133. package/packages/client_build_tool/lib/shared/utils/utils.js +0 -1
@@ -1,81 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getI18nLoadingRuntimeModule = getI18nLoadingRuntimeModule;
7
-
8
- /* eslint-disable no-restricted-syntax */
9
- const getChunksMapObject = i18nChunks => {
10
- const obj = {};
11
-
12
- for (const chunk of i18nChunks) {
13
- obj[chunk.id] = 1;
14
- }
15
-
16
- return obj;
17
- };
18
-
19
- function getI18nLoadingRuntimeModule({
20
- webpack,
21
- getI18nChunks
22
- }) {
23
- const {
24
- Template,
25
- RuntimeGlobals,
26
- RuntimeModule
27
- } = webpack;
28
-
29
- class I18nLoadingRuntimeModule extends RuntimeModule {
30
- constructor(runtimeRequirements, {
31
- runtimeOptions,
32
- prefixFunc
33
- }) {
34
- super('i18n loading', 10);
35
- this.runtimeRequirements = runtimeRequirements;
36
- this.prefixFunc = prefixFunc;
37
- this.runtimeOptions = runtimeOptions;
38
- }
39
-
40
- generate() {
41
- const {
42
- chunk,
43
- runtimeRequirements,
44
- prefixFunc,
45
- compilation
46
- } = this;
47
- const {
48
- runtimeTemplate,
49
- outputOptions: {
50
- crossOriginLoading
51
- }
52
- } = compilation; // const i18nChunks = getI18nChunks(chunk, compilation);
53
- // REASON: we do it in here is in dev mode thing may change
54
- // const i18nChunks = getI18nChunks(entryRuntimeChunk);
55
-
56
- const i18nChunks = getI18nChunks(chunk);
57
- const withLoading = runtimeRequirements.has(RuntimeGlobals.ensureChunkHandlers) && i18nChunks.length > 0;
58
-
59
- if (!withLoading) {
60
- return '';
61
- }
62
-
63
- const chunkMap = getChunksMapObject(i18nChunks);
64
- const {
65
- attributes,
66
- scriptType,
67
- insert: insertRoot
68
- } = this.runtimeOptions;
69
- const insertPlace = typeof insertRoot === 'function' ? `(${insertRoot.toString()})(scriptTag)` : Template.asString([`var target = document.querySelector("${insertRoot}");`, 'target.parentNode.insertBefore(scriptTag, target.nextSibling);']);
70
- return Template.asString([`${prefixFunc(i18nChunks)}`, `var createI18nScriptTag = ${runtimeTemplate.basicFunction('chunkId, fullsrc, resolve, reject', ['var scriptTag = document.createElement("script");', attributes ? Template.asString(Object.entries(attributes).map(entry => {
71
- const [key, value] = entry;
72
- return `scriptTag.setAttribute(${JSON.stringify(key)}, ${JSON.stringify(value)});`;
73
- })) : '', scriptType ? `scriptTag.type = ${JSON.stringify(scriptType)};` : '', `var onScriptComplete = ${runtimeTemplate.basicFunction('event', ['// avoid mem leaks.', 'scriptTag.onerror = scriptTag.onload = null;', 'if (event.type === \'load\') {', Template.indent(['resolve();']), '} else {', Template.indent(['var errorType = event && (event.type === \'load\' ? \'missing\' : event.type);', 'var realSrc = event && event.target && event.target.src || fullsrc;', 'var err = new Error("Loading I18N chunk " + chunkId + " failed.\\n(" + realSrc + ")");', 'err.code = "I18N_CHUNK_LOAD_FAILED";', 'err.type = errorType;', 'err.request = realSrc;', 'scriptTag.parentNode.removeChild(scriptTag)', 'reject(err);']), '}'])}`, 'scriptTag.onerror = scriptTag.onload = onScriptComplete;', 'scriptTag.src = fullsrc;', crossOriginLoading ? Template.asString(['if (scriptTag.src.indexOf(window.location.origin + \'/\') !== 0) {', Template.indent(`scriptTag.crossOrigin = ${JSON.stringify(crossOriginLoading)};`), '}']) : '', insertRoot && insertPlace || Template.asString(['document.head.appendChild(scriptTag);']), 'return scriptTag;'])};`, `var findI18nScriptTag = ${runtimeTemplate.basicFunction('src, fullsrc', ['var existingScriptTags = document.getElementsByTagName("script");', 'for(var i = 0; i < existingScriptTags.length; i++) {', Template.indent(['var tag = existingScriptTags[i];', 'var dataSrc = tag.getAttribute("data-src") || tag.getAttribute("src");', 'if((dataSrc === src || dataSrc === fullsrc)) return tag;']), '}', 'var existingStyleTags = document.getElementsByTagName("style");', 'for(var i = 0; i < existingStyleTags.length; i++) {', Template.indent(['var tag = existingStyleTags[i];', 'var dataSrc = tag.getAttribute("data-src");', 'if(dataSrc === src || dataSrc === fullsrc) return tag;']), '}'])};`, `var loadI18nScriptTag = ${runtimeTemplate.basicFunction('chunkId', `return new Promise(${runtimeTemplate.basicFunction('resolve, reject', [`var src = ${RuntimeGlobals.require}.miniI18nF(chunkId);`, `var fullsrc = ${RuntimeGlobals.publicPath} + src;`, 'if(findI18nScriptTag(src, fullsrc)) return resolve();', 'createI18nScriptTag(chunkId, fullsrc, resolve, reject);'])});`)}`, withLoading ? Template.asString(['// object to store loaded I18N chunks', 'var installedI18nChunks = {', Template.indent(
74
- /** @type {string[]} */
75
- chunk.ids.map(id => `${JSON.stringify(id)}: 0`).join(',\n')), '};', '', `${RuntimeGlobals.ensureChunkHandlers}.miniI18n = ${runtimeTemplate.basicFunction('chunkId, promises', [`var i18nChunks = ${JSON.stringify(chunkMap)};`, 'if(installedI18nChunks[chunkId]) promises.push(installedI18nChunks[chunkId]);', 'else if(installedI18nChunks[chunkId] !== 0 && i18nChunks[chunkId]) {', Template.indent([`promises.push(installedI18nChunks[chunkId] = loadI18nScriptTag(chunkId).then(${runtimeTemplate.basicFunction('', 'installedI18nChunks[chunkId] = 0;')}, ${runtimeTemplate.basicFunction('e', ['delete installedI18nChunks[chunkId];', 'throw e;'])}));`]), '}'])};`]) : '// no chunk loading', '']);
76
- }
77
-
78
- }
79
-
80
- return I18nLoadingRuntimeModule;
81
- }
@@ -1,201 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getI18nModule = getI18nModule;
7
-
8
- var _path = _interopRequireDefault(require("path"));
9
-
10
- var _constants = require("./constants");
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- /* eslint-disable no-underscore-dangle */
15
- const i18nModuleCache = new WeakMap();
16
-
17
- function getI18nModule(webpack) {
18
- if (i18nModuleCache.has(webpack)) {
19
- return i18nModuleCache.get(webpack);
20
- }
21
-
22
- class I18nModule extends webpack.Module {
23
- constructor({
24
- context,
25
- identifier,
26
- identifierIndex,
27
- content,
28
- // ## layer,
29
- // ## supports,
30
- // ## media,
31
- // ## sourceMap,
32
- assets,
33
- assetsInfo
34
- }) {
35
- super(_constants.MODULE_TYPE, context);
36
- this.id = '';
37
- this._context = context;
38
- this._identifier = identifier;
39
- this._identifierIndex = identifierIndex;
40
- this.content = content; // ## this.layer = layer;
41
- // ## this.supports = supports;
42
- // ## this.media = media;
43
- // ## this.sourceMap = sourceMap;
44
-
45
- this.assets = assets;
46
- this.assetsInfo = assetsInfo;
47
- this._needBuild = true;
48
- }
49
-
50
- size() {
51
- return this.content.length;
52
- }
53
-
54
- identifier() {
55
- return `i18n|${this._identifier}|${this._identifierIndex}`;
56
- }
57
-
58
- readableIdentifier(requestShortener) {
59
- return `i18n ${requestShortener.shorten(this._identifier)}${this._identifierIndex ? ` (${this._identifierIndex})` : ''}`;
60
- } // eslint-disable-next-line class-methods-use-this
61
-
62
-
63
- getSourceTypes() {
64
- return _constants.TYPES;
65
- } // eslint-disable-next-line class-methods-use-this
66
-
67
-
68
- codeGeneration() {
69
- return _constants.CODE_GENERATION_RESULT;
70
- }
71
-
72
- nameForCondition() {
73
- const resource = this._identifier.split('!').pop();
74
-
75
- const idx = resource.indexOf('?');
76
-
77
- if (idx >= 0) {
78
- return resource.substring(0, idx);
79
- }
80
-
81
- return resource;
82
- }
83
-
84
- updateCacheModule(module) {
85
- if (this.content !== module.content || // ## this.layer !== module.layer ||
86
- // ## this.supports !== module.supports ||
87
- // ## this.media !== module.media ||
88
- // ## this.sourceMap !== module.sourceMap ||
89
- this.assets !== module.assets || this.assetsInfo !== module.assetsInfo) {
90
- this._needBuild = true;
91
- this.content = module.content; // ## this.layer = module.layer;
92
- // ## this.supports = module.supports;
93
- // ## this.media = module.media;
94
- // ## this.sourceMap = module.sourceMap;
95
-
96
- this.assets = module.assets;
97
- this.assetsInfo = module.assetsInfo;
98
- }
99
- }
100
-
101
- needRebuild() {
102
- return this._needBuild;
103
- }
104
-
105
- needBuild(context, callback) {
106
- callback(undefined, this._needBuild);
107
- }
108
-
109
- build(options, compilation, resolver, fileSystem, callback) {
110
- this.buildInfo = {
111
- assets: this.assets,
112
- assetsInfo: this.assetsInfo,
113
- cacheable: true,
114
- hash: this._computeHash(compilation.outputOptions.hashFunction)
115
- };
116
- this.buildMeta = {};
117
- this._needBuild = false;
118
- callback();
119
- }
120
-
121
- _computeHash(hashFunction) {
122
- const hash = webpack.util.createHash(hashFunction);
123
- hash.update(this.content); // ## if (this.layer) {
124
- // ## hash.update(this.layer);
125
- // ## }
126
- // ## hash.update(this.supports || '');
127
- // ## hash.update(this.media || '');
128
- // ## hash.update(this.sourceMap || '');
129
-
130
- return hash.digest('hex');
131
- }
132
-
133
- updateHash(hash, context) {
134
- super.updateHash(hash, context);
135
- hash.update(this.buildInfo.hash);
136
- }
137
-
138
- serialize(context) {
139
- const {
140
- write
141
- } = context;
142
- write(this._context);
143
- write(this._identifier);
144
- write(this._identifierIndex);
145
- write(this.content); // ## write(this.layer);
146
- // ## write(this.supports);
147
- // ## write(this.media);
148
- // ## write(this.sourceMap);
149
-
150
- write(this.assets);
151
- write(this.assetsInfo);
152
- write(this._needBuild);
153
- super.serialize(context);
154
- }
155
-
156
- deserialize(context) {
157
- this._needBuild = context.read();
158
- super.deserialize(context);
159
- }
160
-
161
- }
162
-
163
- i18nModuleCache.set(webpack, I18nModule);
164
- webpack.util.serialization.register(I18nModule, _path.default.resolve(__dirname, 'I18nModule-new'), null, {
165
- serialize(instance, context) {
166
- instance.serialize(context);
167
- },
168
-
169
- deserialize(context) {
170
- const {
171
- read
172
- } = context;
173
- const contextModule = read();
174
- const identifier = read();
175
- const identifierIndex = read();
176
- const content = read(); // ## const layer = read();
177
- // ## const supports = read();
178
- // ## const media = read();
179
- // ## const sourceMap = read();
180
-
181
- const assets = read();
182
- const assetsInfo = read();
183
- const dep = new I18nModule({
184
- context: contextModule,
185
- identifier,
186
- identifierIndex,
187
- content,
188
- // ## layer,
189
- // ## supports,
190
- // ## media,
191
- // ## sourceMap,
192
- assets,
193
- assetsInfo
194
- });
195
- dep.deserialize(context);
196
- return dep;
197
- }
198
-
199
- });
200
- return I18nModule;
201
- }
@@ -1,401 +0,0 @@
1
- "use strict";
2
-
3
- var _webpack = require("webpack");
4
-
5
- var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin"));
6
-
7
- var _constants = require("./constants");
8
-
9
- var _I18nKeysIdentifer = _interopRequireDefault(require("./I18nKeysIdentifer"));
10
-
11
- var _getI18nModule = require("./getI18nModule");
12
-
13
- var _getI18nDependency = require("./getI18nDependency");
14
-
15
- var _optionsHandler = require("./optionsHandler");
16
-
17
- var _getI18nLoadingRuntimeModule = require("./getI18nLoadingRuntimeModule");
18
-
19
- var _createHash = require("./createHash");
20
-
21
- var _pathCreator = require("./pathCreator");
22
-
23
- var _templateFileName = require("./templateFileName");
24
-
25
- var _hashUtils = require("./utils/hashUtils");
26
-
27
- var _propertiesUtils = require("./utils/propertiesUtils");
28
-
29
- var _urlConcat = require("../../../../server/urlConcat");
30
-
31
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
-
33
- /* eslint-disable no-restricted-syntax */
34
-
35
- /* eslint-disable no-nested-ternary */
36
- // import getI18nKeysFormModules from './utils/getI18nKeysFormModules';
37
- const pluginName = 'mini-i18n-extract-plugin';
38
- const pluginSymbol = Symbol(pluginName);
39
-
40
- function getChunkModules(chunk, chunkGraph) {
41
- return typeof chunkGraph !== 'undefined' ? chunkGraph.getChunkModules(chunk) : chunk.modulesIterable;
42
- }
43
-
44
- class I18nExtractPlugin {
45
- constructor(options = {}) {
46
- // initialize options
47
- this.options = (0, _optionsHandler.optionsHandler)(options);
48
- }
49
-
50
- getI18nKeysForChunk(chunk, chunkGraph) {
51
- const {
52
- modulesI18nKeysMap
53
- } = this.i18nKeysIdentifer;
54
- const i18nKeysMap = {};
55
-
56
- for (const mod of getChunkModules(chunk, chunkGraph)) {
57
- const keys = modulesI18nKeysMap[mod.resource];
58
-
59
- if (keys) {
60
- for (const key of keys) {
61
- i18nKeysMap[key] = 1;
62
- }
63
- }
64
- }
65
-
66
- return Object.keys(i18nKeysMap);
67
- }
68
-
69
- getI18nContentForkeys(i18nKeys, locale) {
70
- const {
71
- allI18nObject
72
- } = this.options;
73
- const data = {};
74
-
75
- for (const key of i18nKeys) {
76
- data[key] = allI18nObject[locale][key];
77
- }
78
-
79
- return data;
80
- }
81
-
82
- getI18nChunkFileContent(i18nKeys, loc) {
83
- const {
84
- jsonpFunc
85
- } = this.options;
86
- const data = this.getI18nContentForkeys(i18nKeys, loc);
87
- return `${jsonpFunc}(${(0, _propertiesUtils.jsonToString)(data)})`;
88
- }
89
-
90
- filterI18nUsedChunks(chunks) {
91
- const {
92
- localeChunkAssestMap
93
- } = this;
94
- return Array.from(chunks).filter(c => localeChunkAssestMap[c.id]);
95
- }
96
-
97
- getContentHashes(locale) {
98
- const {
99
- localeChunkAssestMap
100
- } = this;
101
- const contentHashes = {};
102
- Object.keys(localeChunkAssestMap).forEach(chunkId => {
103
- if (localeChunkAssestMap[chunkId] && localeChunkAssestMap[chunkId][locale] && localeChunkAssestMap[chunkId][locale].contentHash) {
104
- contentHashes[chunkId] = localeChunkAssestMap[chunkId][locale].contentHash;
105
- } // console.log(localeChunkAssestMap[chunkId][locale]);
106
-
107
- }); // console.log({ contentHashes });
108
-
109
- return contentHashes;
110
- }
111
-
112
- apply(compiler) {
113
- const {
114
- webpack
115
- } = compiler;
116
- this.addToDefaultTypes(compiler);
117
- const I18nModule = (0, _getI18nModule.getI18nModule)(webpack);
118
- const I18nDependency = (0, _getI18nDependency.getI18nDependency)(webpack); // initialize base data's and plugis
119
-
120
- this.i18nKeysIdentifer = new _I18nKeysIdentifer.default(this.options, {
121
- I18nModule,
122
- I18nDependency
123
- });
124
- this.i18nKeysIdentifer.apply(compiler);
125
- compiler.hooks.thisCompilation.tap(pluginName, compilation => {
126
- this.localeChunkAssestMap = {};
127
- compilation.hooks.beforeHash.tap(pluginName, () => {
128
- const {
129
- locales
130
- } = this.options;
131
- const {
132
- chunks
133
- } = compilation;
134
- this.localeChunkAssestMap = {};
135
- const {
136
- localeChunkAssestMap
137
- } = this;
138
-
139
- for (const chunk of chunks) {
140
- const {
141
- chunkGraph
142
- } = compilation;
143
- const i18nKeys = this.getI18nKeysForChunk(chunk, chunkGraph);
144
-
145
- if (i18nKeys.length) {
146
- localeChunkAssestMap[chunk.id] = {};
147
-
148
- for (const loc of locales) {
149
- const content = this.getI18nChunkFileContent(i18nKeys, loc);
150
- localeChunkAssestMap[chunk.id][loc] = {
151
- content
152
- };
153
- }
154
- }
155
- }
156
- });
157
- compilation.hooks.chunkHash.tap(pluginName, (chunk, hash) => {
158
- const {
159
- localeChunkAssestMap
160
- } = this;
161
- const {
162
- locales
163
- } = this.options;
164
-
165
- if (localeChunkAssestMap[chunk.id]) {
166
- for (const loc of locales) {
167
- const {
168
- content
169
- } = localeChunkAssestMap[chunk.id][loc];
170
- hash.update(content);
171
- }
172
- }
173
- });
174
-
175
- function createFilenameWithHash({
176
- fileNameTemplate,
177
- chunk,
178
- locale,
179
- content
180
- }) {
181
- const fileName = fileNameTemplate.replaceAll('[locale]', locale);
182
- const contentHash = (0, _createHash.createHash)({
183
- compiler,
184
- outputOptions: compilation.outputOptions,
185
- content
186
- });
187
- const filename = (0, _pathCreator.pathCreator)(fileName, compilation, {
188
- hash: compilation.hash,
189
- chunkId: chunk.id,
190
- chunkHash: chunk.hash,
191
- contentHash
192
- });
193
- return {
194
- contentHash,
195
- filename
196
- };
197
- }
198
-
199
- compilation.hooks.contentHash.tap(pluginName, chunk => {
200
- const {
201
- RawSource
202
- } = webpack.sources;
203
- const {
204
- locales,
205
- chunkFilename,
206
- filename
207
- } = this.options;
208
- const fileNameTemplate = chunk.canBeInitial() ? filename : chunkFilename; // const { chunks } = compilation;
209
-
210
- const {
211
- localeChunkAssestMap
212
- } = this; // function filterI18nUsedChunks(chunks) {
213
- // return Array.from(chunks).filter(c => localeChunkAssestMap[c.id]);
214
- // }
215
- // for (const chunk of chunks) {
216
-
217
- if (localeChunkAssestMap[chunk.id]) {
218
- for (const locale of locales) {
219
- const localObject = localeChunkAssestMap[chunk.id][locale];
220
- const {
221
- content
222
- } = localObject;
223
- const {
224
- contentHash,
225
- filename
226
- } = createFilenameWithHash({
227
- fileNameTemplate,
228
- chunk,
229
- locale,
230
- content
231
- });
232
- localObject.contentHash = contentHash;
233
- localObject.filename = filename;
234
- compilation.emitAsset(filename, new RawSource(content));
235
- }
236
- }
237
- });
238
-
239
- if (!this.options.runtime) {
240
- return;
241
- }
242
-
243
- this.createI18nDownloadCodeInRuntimeFile(webpack, compilation, compiler); // ## compilation.hooks.runtimeRequirementInTree
244
- // ## .for(RuntimeGlobals.hmrDownloadUpdateHandlers)
245
- // ## .tap(pluginName, handler);
246
-
247
- _htmlWebpackPlugin.default.getHooks(compilation).beforeAssetTagGeneration.tap(pluginName, hookOptions => {
248
- const {
249
- assets
250
- } = hookOptions;
251
- const {
252
- templateLabel,
253
- filename,
254
- publicPath = ''
255
- } = this.options;
256
- const dummyContent = '// dummy comment';
257
- const initialChunks = compilation.chunks.filter(c => c.canBeInitial() && c.id !== c.runtime);
258
- const initialI18nAssets = initialChunks.map(c => {
259
- const data = createFilenameWithHash({
260
- fileNameTemplate: filename,
261
- chunk: c,
262
- locale: templateLabel,
263
- content: dummyContent
264
- });
265
- return (0, _urlConcat.urlConcat)(publicPath, data.filename);
266
- });
267
- const allJSAssets = [...initialI18nAssets, ...assets.js].map(url => url.replaceAll('[locale]', templateLabel).replaceAll('%5Blocale%5D', templateLabel));
268
- console.log('HtmlWebpackPluginallJSAssets', {
269
- assets,
270
- filename,
271
- allJSAssets
272
- });
273
- return {
274
- assets: { ...assets,
275
- js: allJSAssets
276
- }
277
- };
278
- });
279
- });
280
- }
281
-
282
- createI18nDownloadCodeInRuntimeFile(webpack, compilation, compiler) {
283
- const {
284
- RuntimeGlobals
285
- } = webpack;
286
- const {
287
- RawSource
288
- } = webpack.sources;
289
- const {
290
- chunkFilename,
291
- locales
292
- } = this.options;
293
- const chunkFilenameHasContentHash = (0, _hashUtils.hasContentHash)(chunkFilename);
294
-
295
- const getI18nChunks = mainChunk => this.filterI18nUsedChunks(mainChunk.getAllAsyncChunks());
296
-
297
- const I18nLoadingRuntimeModule = (0, _getI18nLoadingRuntimeModule.getI18nLoadingRuntimeModule)({
298
- getI18nChunks,
299
- webpack
300
- });
301
- const enabledChunks = new WeakSet();
302
-
303
- const chunkFilenameUrlgenerator = (i18nChunks, locale) => (0, _templateFileName.templateFileName)({
304
- compiler,
305
- compilation,
306
- locale,
307
- dynamicFilename: chunkFilename,
308
- contentHashes: this.getContentHashes(locale),
309
- chunks: i18nChunks
310
- });
311
-
312
- const prefixFunc = () => _constants.I18N_CHUNK_NAME_GENERATION_SEGMENT;
313
-
314
- const handler = (entryRuntimeChunk, set) => {
315
- if (enabledChunks.has(entryRuntimeChunk)) {
316
- return;
317
- }
318
-
319
- enabledChunks.add(entryRuntimeChunk);
320
- const {
321
- chunkFilename,
322
- // filename: initialFilename,
323
- runtimeOptions
324
- } = this.options;
325
-
326
- if (typeof chunkFilename === 'string' && /\[(full)?hash(:\d+)?\]/.test(chunkFilename)) {
327
- set.add(RuntimeGlobals.getFullHash);
328
- }
329
-
330
- set.add(RuntimeGlobals.publicPath);
331
- compilation.addRuntimeModule(entryRuntimeChunk, new I18nLoadingRuntimeModule(set, {
332
- prefixFunc: chunkFilenameHasContentHash ? prefixFunc : chunkFilenameUrlgenerator,
333
- compiler,
334
- runtimeOptions,
335
- chunkFilename
336
- }));
337
- };
338
-
339
- compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.ensureChunkHandlers).tap(pluginName, handler);
340
-
341
- if (chunkFilenameHasContentHash) {
342
- compilation.hooks.processAssets.tap({
343
- name: pluginName,
344
- stage: _webpack.Compilation.PROCESS_ASSETS_STAGE_DERIVED // additionalAssets: true
345
-
346
- }, assets => {
347
- // eslint-disable-next-line no-underscore-dangle
348
- const entries = compilation._getChunkGraphEntries();
349
-
350
- function createRuntimeFilePerLocale({
351
- locale,
352
- runtimeFileName,
353
- runtimeFileSourceStr,
354
- i18nChunks
355
- }) {
356
- const newRuntimeName = runtimeFileName.replaceAll('[locale]', locale);
357
- const replaceText = chunkFilenameUrlgenerator(i18nChunks, locale);
358
- const replacedStr = runtimeFileSourceStr.replace(_constants.I18N_CHUNK_NAME_GENERATION_SEGMENT, replaceText);
359
- compilation.emitAsset(newRuntimeName, new RawSource(replacedStr));
360
- }
361
-
362
- for (const entryChunk of entries) {
363
- const i18nChunks = getI18nChunks(entryChunk);
364
- const runtimeFileName = entryChunk.files[0];
365
- const runtimeFileSourceStr = assets[runtimeFileName].source();
366
- locales.forEach(locale => createRuntimeFilePerLocale({
367
- locale,
368
- entryChunk,
369
- runtimeFileName,
370
- runtimeFileSourceStr,
371
- i18nChunks
372
- })); // NOTE: we don't delete, Because of HTML plugin needs to add runtime file in html
373
- // compilation.deleteAsset(runtimeFileName);
374
- }
375
- });
376
- }
377
- } // eslint-disable-next-line class-methods-use-this
378
-
379
-
380
- addToDefaultTypes(compiler) {
381
- const {
382
- splitChunks
383
- } = compiler.options.optimization;
384
-
385
- if (splitChunks) {
386
- if (splitChunks.defaultSizeTypes.includes('...')) {
387
- splitChunks.defaultSizeTypes.push(_constants.MODULE_TYPE);
388
- }
389
- }
390
- }
391
-
392
- }
393
-
394
- I18nExtractPlugin.pluginName = pluginName;
395
- I18nExtractPlugin.pluginSymbol = pluginSymbol; // I18nExtractPlugin.loader = require.resolve('./loader');
396
-
397
- module.exports = I18nExtractPlugin;
398
- /**
399
- * TODO:
400
- * move `localeChunkAssestMap` as separate module or file or class
401
- */