@zohodesk/react-cli 0.0.1-beta.98 → 0.0.1-betaa.138.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/CHANGELOG.md +5 -0
- package/README.md +149 -0
- package/bin/cli.js +34 -29
- package/files/eslintrc.js +57 -0
- package/files/prettierrc.js +3 -0
- package/lib/babel/cmjs-plugins-presets.js +16 -9
- package/lib/babel/es-plugins-presets.js +26 -14
- package/lib/common/getEntries.js +31 -22
- package/lib/common/getPublicPathConfig.js +27 -13
- package/lib/common/index.js +21 -25
- package/lib/common/splitChunks.js +62 -53
- package/lib/common/templateParameters.js +10 -8
- package/lib/configs/jest.config.js +15 -25
- package/lib/configs/webpack.component.umd.config.js +31 -37
- package/lib/configs/webpack.css.umd.config.js +44 -47
- package/lib/configs/webpack.dev.config.js +70 -52
- package/lib/configs/webpack.docs.config.js +106 -106
- package/lib/configs/webpack.prod.config.js +95 -75
- package/lib/hooks/docsProptypeHook.js +32 -38
- package/lib/jest/commitedFilesResult.js +103 -74
- package/lib/jest/coverageCollector.js +41 -21
- package/lib/jest/jsonMaker.js +15 -16
- package/lib/jest/preProcessors/cssPreprocessor.js +16 -18
- package/lib/jest/preProcessors/jsPreprocessor.js +3 -5
- package/lib/jest/preProcessors/otherFilesPreprocessor.js +5 -6
- package/lib/jest/result.js +90 -45
- package/lib/jest/run.js +43 -43
- package/lib/jest/setup.js +102 -95
- package/lib/loaderUtils/getCSSLoaders.js +21 -22
- package/lib/loaderUtils/getDevJsLoaders.js +25 -23
- package/lib/loaderUtils/index.js +11 -13
- package/lib/loaders/docsLoader.js +15 -15
- package/lib/loaders/docsPropsLoader.js +14 -17
- package/lib/loaders/fileLoader.js +33 -35
- package/lib/loaders/scriptInstrumentLoader.js +21 -20
- package/lib/loaders/workerLoader.js +136 -0
- package/lib/middlewares/HMRMiddleware.js +54 -45
- package/lib/middlewares/SSTMiddleware.js +8 -5
- package/lib/pluginUtils/getDevPlugins.js +114 -52
- package/lib/pluginUtils/getDocsPlugins.js +25 -29
- package/lib/pluginUtils/getLibraryPlugins.js +8 -10
- package/lib/pluginUtils/getProdPlugins.js +163 -74
- package/lib/pluginUtils/getServerPlugins.js +8 -11
- package/lib/pluginUtils/getUMDCSSPlugins.js +11 -15
- package/lib/pluginUtils/getUMDComponentPlugins.js +11 -15
- package/lib/pluginUtils/index.js +36 -43
- package/lib/plugins/CdnChangePlugin.js +63 -0
- package/lib/plugins/CleanupStatsPlugin.js +18 -32
- package/lib/plugins/CustomAttributePlugin.js +79 -0
- package/lib/plugins/CustomAttributePlugin.md +35 -0
- package/lib/plugins/EFCPlugin.js +185 -0
- package/lib/plugins/I18NInjectIntoIndexPlugin.js +118 -52
- package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +60 -0
- package/lib/plugins/I18nSplitPlugin/I18nDependency.js +44 -0
- package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +266 -0
- package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +183 -0
- package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +100 -0
- package/lib/plugins/I18nSplitPlugin/I18nSplit.md +86 -0
- package/lib/plugins/I18nSplitPlugin/README.md +25 -0
- package/lib/plugins/I18nSplitPlugin/index.js +185 -0
- package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +64 -0
- package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +13 -0
- package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +26 -0
- package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +40 -0
- package/lib/plugins/I18nSplitPlugin/utils/index.js +31 -0
- package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +112 -0
- package/lib/plugins/ManifestPlugin.js +52 -63
- package/lib/plugins/ModuleStatsPlugin.js +83 -173
- package/lib/plugins/OptimizeJSPlugin.js +24 -41
- package/lib/plugins/PublicPathCallbackPlugin.js +42 -116
- package/lib/plugins/PublicPathChangePlugin.js +175 -284
- package/lib/plugins/ReportGeneratePlugin.js +150 -151
- package/lib/plugins/ResourceHintsPlugin.js +53 -35
- package/lib/plugins/ScriptInstrumentPlugin.js +22 -37
- package/lib/plugins/ServiceWorkerPlugin.js +81 -57
- package/lib/plugins/ShadowDOMSupportPlugin.js +153 -234
- package/lib/plugins/SourceMapHookPlugin.js +21 -33
- package/lib/plugins/TPHashMappingPlugin.js +67 -0
- package/lib/plugins/UglifyCSSPlugin.js +23 -30
- package/lib/plugins/UnusedFilesFindPlugin.js +137 -152
- package/lib/plugins/index.js +100 -91
- package/lib/plugins/webpackwatchrunplugin.js +18 -30
- package/lib/postcss-plugins/ExcludeRTLPlugin.js +14 -17
- package/lib/schemas/index.js +336 -81
- package/lib/servers/clusterHubServer.js +22 -26
- package/lib/servers/docsServer.js +3 -5
- package/lib/servers/docsServerCore.js +84 -91
- package/lib/servers/helpServer.js +19 -21
- package/lib/servers/impactServer.js +99 -92
- package/lib/servers/mockserver.js +24 -24
- package/lib/servers/scrServer.js +78 -98
- package/lib/servers/server.js +101 -122
- package/lib/servers/ssServer.js +63 -61
- package/lib/sh/reportPublish.sh +1 -2
- package/lib/templates/CoverageScriptTemplate.js +45 -18
- package/lib/templates/WMSTemplate.js +17 -18
- package/lib/templates/linterConstant.js +6 -4
- package/lib/utils/babelPresets.js +12 -5
- package/lib/utils/clean.js +12 -11
- package/lib/utils/copy.js +12 -34
- package/lib/utils/copyTimezones.js +9 -16
- package/lib/utils/createEventStream.js +24 -19
- package/lib/utils/cssClassNameGenerate.js +44 -73
- package/lib/utils/cssURLReplacer.js +62 -56
- package/lib/utils/dependencyPostPublish.js +20 -19
- package/lib/utils/fileUtils.js +66 -54
- package/lib/utils/folderIterator.js +20 -21
- package/lib/utils/getComponents.js +70 -27
- package/lib/utils/getCurrentBranch.js +11 -17
- package/lib/utils/getDependenciesImpactList.js +114 -187
- package/lib/utils/getHash.js +9 -13
- package/lib/utils/getIp.js +9 -9
- package/lib/utils/getOptions.js +26 -29
- package/lib/utils/getServerURL.js +19 -10
- package/lib/utils/index.js +147 -126
- package/lib/utils/init.js +2 -2
- package/lib/utils/initPreCommitHook.js +40 -32
- package/lib/utils/jsonHelper.js +37 -21
- package/lib/utils/lint/addScripts.js +27 -0
- package/lib/utils/lint/checkExistingConfig.js +67 -0
- package/lib/utils/lint/copyConfigs.js +24 -0
- package/lib/utils/lint/index.js +54 -0
- package/lib/utils/lint/lintScripts.js +11 -0
- package/lib/utils/lint/lintSetup.js +31 -0
- package/lib/utils/lint/lintStagedPreCommitHook.js +7 -0
- package/lib/utils/lint/question.js +30 -0
- package/lib/utils/lintReporter.js +70 -56
- package/lib/utils/mailSender.js +12 -27
- package/lib/utils/pullOrigin.js +21 -18
- package/lib/utils/reinstallDependencies.js +76 -85
- package/lib/utils/removeAttributes.js +25 -23
- package/lib/utils/repoClone.js +47 -45
- package/lib/utils/request.js +64 -77
- package/lib/utils/rtl.js +22 -29
- package/lib/utils/setEnvVariables.js +5 -6
- package/lib/utils/ssTestHack.js +21 -19
- package/lib/utils/switchBranch.js +21 -20
- package/lib/utils/urlConcat.js +22 -0
- package/package.json +72 -67
|
@@ -1,74 +1,78 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.default = void 0;
|
|
6
7
|
|
|
7
|
-
var _path = require(
|
|
8
|
+
var _path = _interopRequireDefault(require("path"));
|
|
8
9
|
|
|
9
|
-
var
|
|
10
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
10
11
|
|
|
11
|
-
var _webpack = require(
|
|
12
|
+
var _webpack = _interopRequireDefault(require("webpack"));
|
|
12
13
|
|
|
13
|
-
var
|
|
14
|
+
var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
|
|
14
15
|
|
|
15
|
-
var
|
|
16
|
+
var _webpackBundleAnalyzer = require("webpack-bundle-analyzer");
|
|
16
17
|
|
|
17
|
-
var
|
|
18
|
+
var _lodashWebpackPlugin = _interopRequireDefault(require("lodash-webpack-plugin"));
|
|
18
19
|
|
|
19
|
-
var
|
|
20
|
+
var _miniCssExtractPlugin = _interopRequireDefault(require("mini-css-extract-plugin"));
|
|
20
21
|
|
|
21
|
-
var
|
|
22
|
+
var _I18nSplitPlugin = _interopRequireDefault(require("../plugins/I18nSplitPlugin"));
|
|
22
23
|
|
|
23
|
-
var
|
|
24
|
+
var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin"));
|
|
24
25
|
|
|
25
|
-
var
|
|
26
|
+
var _copyWebpackPlugin = _interopRequireDefault(require("copy-webpack-plugin"));
|
|
26
27
|
|
|
27
|
-
var
|
|
28
|
+
var _plugins = require("../plugins");
|
|
28
29
|
|
|
29
|
-
var
|
|
30
|
+
var _common = require("../common");
|
|
30
31
|
|
|
31
|
-
var
|
|
32
|
-
|
|
33
|
-
var _copyWebpackPlugin = require('copy-webpack-plugin');
|
|
34
|
-
|
|
35
|
-
var _copyWebpackPlugin2 = _interopRequireDefault(_copyWebpackPlugin);
|
|
36
|
-
|
|
37
|
-
var _plugins = require('../plugins');
|
|
38
|
-
|
|
39
|
-
var _common = require('../common');
|
|
32
|
+
var _CustomAttributePlugin = require("../plugins/CustomAttributePlugin");
|
|
40
33
|
|
|
41
34
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
42
35
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
36
|
+
// eslint-disable-next-line no-unused-vars
|
|
37
|
+
let getProdPlugins = (options, publicPath = '') => {
|
|
38
|
+
let {
|
|
39
|
+
enableChunkHash,
|
|
40
|
+
manifestFileName,
|
|
41
|
+
bundleAnalyze,
|
|
42
|
+
optimize,
|
|
43
|
+
publicPaths,
|
|
44
|
+
hasEFC: prevOptionForEnableEFC,
|
|
45
|
+
enableSMapHook,
|
|
46
|
+
tpFolder,
|
|
47
|
+
folder,
|
|
48
|
+
outputFolder,
|
|
49
|
+
context,
|
|
50
|
+
enableSMap,
|
|
51
|
+
server: {
|
|
52
|
+
mode
|
|
53
|
+
},
|
|
54
|
+
hasShadowDOM,
|
|
55
|
+
resourceHints,
|
|
56
|
+
serviceWorker,
|
|
57
|
+
htmlTemplate: {
|
|
58
|
+
inject
|
|
59
|
+
},
|
|
60
|
+
customAttributes,
|
|
61
|
+
tpHashMapping,
|
|
62
|
+
cdnMapping
|
|
63
|
+
} = options.app;
|
|
64
|
+
const {
|
|
65
|
+
i18n
|
|
66
|
+
} = options;
|
|
67
|
+
const {
|
|
68
|
+
hasEFC: newOptionForEnableEFC,
|
|
69
|
+
nameScope: efcNameSpace,
|
|
70
|
+
localeAttr: efcLocaleAttr
|
|
71
|
+
} = options.efc;
|
|
72
|
+
const hasEFC = newOptionForEnableEFC || prevOptionForEnableEFC;
|
|
73
|
+
let isDevelopment = mode === 'prod' || mode === 'dev' || mode === 'dev-no-warn';
|
|
65
74
|
enableChunkHash = !isDevelopment && enableChunkHash;
|
|
66
|
-
|
|
67
|
-
var plugins = [new _caseSensitivePathsWebpackPlugin2.default(), new _copyWebpackPlugin2.default([{
|
|
68
|
-
from: _path2.default.join(process.cwd(), context, 'i18n') + '/',
|
|
69
|
-
to: enableChunkHash ? './i18n/[name].[hash:20]_.[ext]' : './i18n/[name]_.[ext]',
|
|
70
|
-
toType: 'template'
|
|
71
|
-
}]), new _webpack2.default.IgnorePlugin(/^\.\/locale$/, /moment$/), new _webpack2.default.DefinePlugin({
|
|
75
|
+
let plugins = [new _caseSensitivePathsWebpackPlugin.default(), new _webpack.default.IgnorePlugin(/^\.\/locale$/, /moment$/), new _webpack.default.DefinePlugin({
|
|
72
76
|
__TEST__: false,
|
|
73
77
|
__DEVELOPMENT__: false,
|
|
74
78
|
__LOCAL_PRODUCTION__: isDevelopment,
|
|
@@ -77,44 +81,119 @@ var getProdPlugins = function getProdPlugins(options) {
|
|
|
77
81
|
NODE_ENV: JSON.stringify('production')
|
|
78
82
|
},
|
|
79
83
|
__SERVER__: false
|
|
80
|
-
}), new
|
|
84
|
+
}), new _miniCssExtractPlugin.default({
|
|
81
85
|
filename: enableChunkHash ? './css/[name].[chunkhash:20]_.css' : './css/[name]_.css',
|
|
82
|
-
chunkFilename: enableChunkHash ? './css/[name].[chunkhash:20]_.css' : './css/[name]_.css'
|
|
86
|
+
chunkFilename: enableChunkHash ? './css/[name].[chunkhash:20]_.css' : './css/[name]_.css',
|
|
87
|
+
ignoreOrder: true
|
|
83
88
|
}), new _plugins.ResourceHintsPlugin(), new _plugins.UglifyCSSPlugin()];
|
|
89
|
+
const i18nManifestFileName = 'i18n-manifest.json';
|
|
90
|
+
/**
|
|
91
|
+
* NOTE:
|
|
92
|
+
* this file name ext .i18n.js added
|
|
93
|
+
* Because, in service worker they maintain cache as file name based
|
|
94
|
+
* So, to make differce we added .i18n.js ext.
|
|
95
|
+
*/
|
|
96
|
+
|
|
97
|
+
const i18nFileNameTemplate = 'i18n-chunk/[locale]/[name].[chunkhash].i18n.js';
|
|
98
|
+
const i18nPublicPath = Array.isArray(publicPaths) && !cdnMapping.isCdnEnabled ? publicPaths['4'] : ''; // const i18nFileNameTemplate = 'i18n-chunk/[locale]/[name].[contentHash]_.js';
|
|
99
|
+
// const i18nFileNameTemplate = 'i18n-chunk/[locale]/[name]_.js';
|
|
100
|
+
|
|
101
|
+
if (i18n.chunkSplitEnable) {
|
|
102
|
+
plugins.push(new _I18nSplitPlugin.default({
|
|
103
|
+
jsResource: i18n.jsResource,
|
|
104
|
+
localeVarName: i18n.localeVarName,
|
|
105
|
+
jsonpFunc: i18n.jsonpFunc,
|
|
106
|
+
disableDefault: i18n.disableDefault,
|
|
107
|
+
publicPath: i18nPublicPath,
|
|
108
|
+
i18nManifestFileName,
|
|
109
|
+
// template: (object, locale) => `window.loadI18n(${JSON.stringify(object)}, ${JSON.stringify(locale)})`,
|
|
110
|
+
filenameTemplate: i18nFileNameTemplate,
|
|
111
|
+
propertiesFolder: i18n.propertiesFolder
|
|
112
|
+
}));
|
|
113
|
+
} else {
|
|
114
|
+
plugins.push(new _copyWebpackPlugin.default({
|
|
115
|
+
patterns: [{
|
|
116
|
+
from: `${_path.default.join(process.cwd(), context, 'i18n')}/`,
|
|
117
|
+
to: enableChunkHash ? './i18n/[name].[hash:20]_.[ext]' : './i18n/[name]_.[ext]',
|
|
118
|
+
toType: 'template'
|
|
119
|
+
}]
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
tpFolder && plugins.push(new _copyWebpackPlugin.default({
|
|
124
|
+
patterns: [{
|
|
125
|
+
from: `${_path.default.join(process.cwd(), context, tpFolder)}/`,
|
|
126
|
+
to: `./${tpFolder}/`,
|
|
127
|
+
toType: 'dir'
|
|
128
|
+
}]
|
|
129
|
+
}));
|
|
130
|
+
|
|
84
131
|
if (hasEFC) {
|
|
85
|
-
plugins.push(new
|
|
132
|
+
plugins.push(new _htmlWebpackPlugin.default({
|
|
86
133
|
chunksSortMode: 'none',
|
|
87
134
|
filename: enableChunkHash ? 'index.[templatehash:20].html' : 'index.html',
|
|
88
|
-
template:
|
|
135
|
+
template: _path.default.join(process.cwd(), folder, 'index.html'),
|
|
89
136
|
excludeChunks: ['efc', 'widget'],
|
|
90
137
|
minify: false,
|
|
91
138
|
templateParameters: _common.templateParameters,
|
|
92
139
|
scriptLoading: 'defer',
|
|
93
140
|
inject: inject
|
|
94
141
|
}));
|
|
142
|
+
plugins.push(new _plugins.EFCPlugin({
|
|
143
|
+
isDevelopment,
|
|
144
|
+
serverUrl: publicPath,
|
|
145
|
+
i18nFileNameTemplate,
|
|
146
|
+
i18nManifestFileName,
|
|
147
|
+
entryPointName: 'efc',
|
|
148
|
+
// outputFile: 'zohodesk-efc-sdk-latest.js',
|
|
149
|
+
nameScope: efcNameSpace,
|
|
150
|
+
localeAttr: efcLocaleAttr,
|
|
151
|
+
cdnVariableName: cdnMapping.isCdnEnabled ? cdnMapping.variableName : null
|
|
152
|
+
}));
|
|
95
153
|
} else {
|
|
96
|
-
plugins.push(new
|
|
154
|
+
plugins.push(new _htmlWebpackPlugin.default({
|
|
97
155
|
chunksSortMode: 'none',
|
|
98
156
|
filename: enableChunkHash ? 'index.[templatehash:20].html' : 'index.html',
|
|
99
|
-
template:
|
|
157
|
+
template: _path.default.join(process.cwd(), folder, 'index.html'),
|
|
100
158
|
minify: false,
|
|
101
159
|
templateParameters: _common.templateParameters,
|
|
102
160
|
scriptLoading: 'defer',
|
|
103
161
|
inject: inject
|
|
104
162
|
}));
|
|
105
163
|
}
|
|
106
|
-
plugins.push(new _plugins.I18NInjectIntoIndexPlugin({ publicPath: publicPath, mode: mode }));
|
|
107
|
-
if (publicPaths && !isDevelopment) {
|
|
108
|
-
var callback = publicPaths.callback;
|
|
109
164
|
|
|
110
|
-
|
|
165
|
+
plugins.push(new _plugins.I18NInjectIntoIndexPlugin({
|
|
166
|
+
// Because we will handle cdn url in CdnChangePlugin
|
|
167
|
+
publicPath: cdnMapping.isCdnEnabled ? '' : i18nPublicPath,
|
|
168
|
+
isDevelopment,
|
|
169
|
+
templateLabel: i18n.templateLabel || '{{--user-locale}}',
|
|
170
|
+
i18nFileNameTemplate,
|
|
171
|
+
i18nManifestFileName,
|
|
172
|
+
mainChunkName: 'main'
|
|
173
|
+
}));
|
|
174
|
+
|
|
175
|
+
if (publicPaths && !isDevelopment && !cdnMapping.isCdnEnabled) {
|
|
176
|
+
let {
|
|
177
|
+
callback
|
|
178
|
+
} = publicPaths;
|
|
179
|
+
plugins.push(callback ? new _plugins.PublicPathCallbackPlugin({
|
|
180
|
+
callback
|
|
181
|
+
}) : new _plugins.PublicPathChangePlugin({
|
|
182
|
+
publicPaths,
|
|
183
|
+
resourceHints
|
|
184
|
+
}));
|
|
111
185
|
}
|
|
112
186
|
|
|
113
|
-
|
|
187
|
+
if (cdnMapping.isCdnEnabled) {
|
|
188
|
+
plugins.push(new _plugins.CdnChangePlugin(cdnMapping));
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
plugins.push(new _lodashWebpackPlugin.default({
|
|
114
192
|
collections: true,
|
|
115
193
|
shorthands: true
|
|
116
194
|
}));
|
|
117
195
|
hasShadowDOM && plugins.push(new _plugins.ShadowDOMSupportPlugin());
|
|
196
|
+
|
|
118
197
|
if (!isDevelopment) {
|
|
119
198
|
enableSMap && enableSMapHook && plugins.push(new _plugins.SourceMapHookPlugin());
|
|
120
199
|
optimize && plugins.push(new _plugins.OptimizeJSPlugin());
|
|
@@ -126,6 +205,7 @@ var getProdPlugins = function getProdPlugins(options) {
|
|
|
126
205
|
plugins.push(new _webpackBundleAnalyzer.BundleAnalyzerPlugin({
|
|
127
206
|
analyzerMode: 'static',
|
|
128
207
|
generateStatsFile: true,
|
|
208
|
+
openAnalyzer: false,
|
|
129
209
|
statsOptions: {
|
|
130
210
|
source: false,
|
|
131
211
|
normal: true,
|
|
@@ -135,33 +215,42 @@ var getProdPlugins = function getProdPlugins(options) {
|
|
|
135
215
|
assets: true,
|
|
136
216
|
assetsSort: 'name'
|
|
137
217
|
}
|
|
218
|
+
})); // plugins.push(new ReportGeneratePlugin());
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
if (tpHashMapping && tpHashMapping.length > 0) {
|
|
222
|
+
plugins.push(new _plugins.TPHashMappingPlugin({
|
|
223
|
+
fileMappings: tpHashMapping,
|
|
224
|
+
tpFolder: `${_path.default.join(process.cwd(), context, tpFolder)}/`
|
|
138
225
|
}));
|
|
139
|
-
// plugins.push(new ReportGeneratePlugin());
|
|
140
226
|
}
|
|
141
227
|
}
|
|
142
228
|
|
|
143
229
|
if (!isDevelopment && serviceWorker.enableSw) {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
replaceText = _serviceWorker$replac === undefined ? '@@' : _serviceWorker$replac;
|
|
230
|
+
let {
|
|
231
|
+
filePath,
|
|
232
|
+
fileName = 'sw.js',
|
|
233
|
+
exitPath = '/',
|
|
234
|
+
replaceText = '@@'
|
|
235
|
+
} = serviceWorker;
|
|
151
236
|
|
|
152
237
|
if (!filePath) {
|
|
153
238
|
throw new Error('File Path required for service worker plugin');
|
|
154
239
|
}
|
|
240
|
+
|
|
155
241
|
plugins.push(new _plugins.ServiceWorkerPlugin({
|
|
156
|
-
filePath:
|
|
242
|
+
filePath: _path.default.join(process.cwd(), filePath),
|
|
243
|
+
i18nFileNameTemplate,
|
|
157
244
|
fileName: fileName,
|
|
158
|
-
exitPath:
|
|
159
|
-
replaceText
|
|
160
|
-
publicPaths
|
|
245
|
+
exitPath: _path.default.join(outputFolder, exitPath),
|
|
246
|
+
replaceText,
|
|
247
|
+
publicPaths
|
|
161
248
|
}));
|
|
162
249
|
}
|
|
163
250
|
|
|
251
|
+
customAttributes.enable && plugins.push(new _CustomAttributePlugin.CustomAttributePlugin(customAttributes));
|
|
164
252
|
return plugins;
|
|
165
253
|
};
|
|
166
254
|
|
|
167
|
-
|
|
255
|
+
var _default = getProdPlugins;
|
|
256
|
+
exports.default = _default;
|
|
@@ -1,28 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.default = void 0;
|
|
6
7
|
|
|
7
|
-
var _webpack = require(
|
|
8
|
+
var _webpack = _interopRequireDefault(require("webpack"));
|
|
8
9
|
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
var _caseSensitivePathsWebpackPlugin = require('case-sensitive-paths-webpack-plugin');
|
|
12
|
-
|
|
13
|
-
var _caseSensitivePathsWebpackPlugin2 = _interopRequireDefault(_caseSensitivePathsWebpackPlugin);
|
|
10
|
+
var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
|
|
14
11
|
|
|
15
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
13
|
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
let getProdPlugins = () => {
|
|
15
|
+
let plugins = [new _webpack.default.optimize.ModuleConcatenationPlugin(), new _caseSensitivePathsWebpackPlugin.default(), new _webpack.default.IgnorePlugin(/^\.\/domain$/, /moment$/), new _webpack.default.DefinePlugin({
|
|
19
16
|
__TEST__: false,
|
|
20
17
|
__DEVELOPMENT__: true,
|
|
21
18
|
__DOCS__: false,
|
|
22
19
|
__SERVER__: true
|
|
23
20
|
})];
|
|
24
|
-
|
|
25
21
|
return plugins;
|
|
26
22
|
};
|
|
27
23
|
|
|
28
|
-
|
|
24
|
+
var _default = getProdPlugins;
|
|
25
|
+
exports.default = _default;
|
|
@@ -1,27 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.default = void 0;
|
|
6
7
|
|
|
7
|
-
var _caseSensitivePathsWebpackPlugin = require(
|
|
8
|
+
var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
|
|
8
9
|
|
|
9
|
-
var
|
|
10
|
+
var _miniCssExtractPlugin = _interopRequireDefault(require("mini-css-extract-plugin"));
|
|
10
11
|
|
|
11
|
-
var
|
|
12
|
+
var _plugins = require("../plugins");
|
|
12
13
|
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
var _plugins = require('../plugins');
|
|
16
|
-
|
|
17
|
-
var _webpack = require('webpack');
|
|
18
|
-
|
|
19
|
-
var _webpack2 = _interopRequireDefault(_webpack);
|
|
14
|
+
var _webpack = _interopRequireDefault(require("webpack"));
|
|
20
15
|
|
|
21
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
17
|
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
let getUMDCSSPlugins = () => {
|
|
19
|
+
let plugins = [new _caseSensitivePathsWebpackPlugin.default(), new _webpack.default.DefinePlugin({
|
|
25
20
|
__TEST__: false,
|
|
26
21
|
__DEVELOPMENT__: false,
|
|
27
22
|
__DOCS__: false,
|
|
@@ -29,11 +24,12 @@ var getUMDCSSPlugins = function getUMDCSSPlugins() {
|
|
|
29
24
|
NODE_ENV: JSON.stringify('production')
|
|
30
25
|
},
|
|
31
26
|
__SERVER__: false
|
|
32
|
-
}), new
|
|
27
|
+
}), new _miniCssExtractPlugin.default({
|
|
33
28
|
filename: 'css/[name].css',
|
|
34
29
|
chunkFilename: 'css/[id].css'
|
|
35
30
|
}), new _plugins.UglifyCSSPlugin()];
|
|
36
31
|
return plugins;
|
|
37
32
|
};
|
|
38
33
|
|
|
39
|
-
|
|
34
|
+
var _default = getUMDCSSPlugins;
|
|
35
|
+
exports.default = _default;
|
|
@@ -1,27 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.default = void 0;
|
|
6
7
|
|
|
7
|
-
var _caseSensitivePathsWebpackPlugin = require(
|
|
8
|
+
var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
|
|
8
9
|
|
|
9
|
-
var
|
|
10
|
+
var _webpack = _interopRequireDefault(require("webpack"));
|
|
10
11
|
|
|
11
|
-
var
|
|
12
|
+
var _miniCssExtractPlugin = _interopRequireDefault(require("mini-css-extract-plugin"));
|
|
12
13
|
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
var _miniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
16
|
-
|
|
17
|
-
var _miniCssExtractPlugin2 = _interopRequireDefault(_miniCssExtractPlugin);
|
|
18
|
-
|
|
19
|
-
var _plugins = require('../plugins');
|
|
14
|
+
var _plugins = require("../plugins");
|
|
20
15
|
|
|
21
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
17
|
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
let getUMDComponentPlugins = isDocs => {
|
|
19
|
+
let plugins = [new _caseSensitivePathsWebpackPlugin.default(), new _webpack.default.DefinePlugin({
|
|
25
20
|
__TEST__: false,
|
|
26
21
|
__DEVELOPMENT__: false,
|
|
27
22
|
__DOCS__: isDocs ? true : false,
|
|
@@ -29,11 +24,12 @@ var getUMDComponentPlugins = function getUMDComponentPlugins(isDocs) {
|
|
|
29
24
|
NODE_ENV: JSON.stringify('production')
|
|
30
25
|
},
|
|
31
26
|
__SERVER__: false
|
|
32
|
-
}), new
|
|
27
|
+
}), new _miniCssExtractPlugin.default({
|
|
33
28
|
filename: 'css/[name].css',
|
|
34
29
|
chunkFilename: 'css/[name].css'
|
|
35
30
|
}), new _plugins.UglifyCSSPlugin()];
|
|
36
31
|
return plugins;
|
|
37
32
|
};
|
|
38
33
|
|
|
39
|
-
|
|
34
|
+
var _default = getUMDComponentPlugins;
|
|
35
|
+
exports.default = _default;
|
package/lib/pluginUtils/index.js
CHANGED
|
@@ -1,70 +1,63 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
|
-
var _getDevPlugins = require('./getDevPlugins');
|
|
8
|
-
|
|
9
|
-
Object.defineProperty(exports, 'getDevPlugins', {
|
|
6
|
+
Object.defineProperty(exports, "getDevPlugins", {
|
|
10
7
|
enumerable: true,
|
|
11
|
-
get: function
|
|
12
|
-
return
|
|
8
|
+
get: function () {
|
|
9
|
+
return _getDevPlugins.default;
|
|
13
10
|
}
|
|
14
11
|
});
|
|
15
|
-
|
|
16
|
-
var _getProdPlugins = require('./getProdPlugins');
|
|
17
|
-
|
|
18
|
-
Object.defineProperty(exports, 'getProdPlugins', {
|
|
12
|
+
Object.defineProperty(exports, "getDocsPlugins", {
|
|
19
13
|
enumerable: true,
|
|
20
|
-
get: function
|
|
21
|
-
return
|
|
14
|
+
get: function () {
|
|
15
|
+
return _getDocsPlugins.default;
|
|
22
16
|
}
|
|
23
17
|
});
|
|
24
|
-
|
|
25
|
-
var _getDocsPlugins = require('./getDocsPlugins');
|
|
26
|
-
|
|
27
|
-
Object.defineProperty(exports, 'getDocsPlugins', {
|
|
18
|
+
Object.defineProperty(exports, "getLibraryPlugins", {
|
|
28
19
|
enumerable: true,
|
|
29
|
-
get: function
|
|
30
|
-
return
|
|
20
|
+
get: function () {
|
|
21
|
+
return _getLibraryPlugins.default;
|
|
31
22
|
}
|
|
32
23
|
});
|
|
33
|
-
|
|
34
|
-
var _getServerPlugins = require('./getServerPlugins');
|
|
35
|
-
|
|
36
|
-
Object.defineProperty(exports, 'getServerPlugins', {
|
|
24
|
+
Object.defineProperty(exports, "getProdPlugins", {
|
|
37
25
|
enumerable: true,
|
|
38
|
-
get: function
|
|
39
|
-
return
|
|
26
|
+
get: function () {
|
|
27
|
+
return _getProdPlugins.default;
|
|
40
28
|
}
|
|
41
29
|
});
|
|
42
|
-
|
|
43
|
-
var _getLibraryPlugins = require('./getLibraryPlugins');
|
|
44
|
-
|
|
45
|
-
Object.defineProperty(exports, 'getLibraryPlugins', {
|
|
30
|
+
Object.defineProperty(exports, "getServerPlugins", {
|
|
46
31
|
enumerable: true,
|
|
47
|
-
get: function
|
|
48
|
-
return
|
|
32
|
+
get: function () {
|
|
33
|
+
return _getServerPlugins.default;
|
|
49
34
|
}
|
|
50
35
|
});
|
|
51
|
-
|
|
52
|
-
var _getUMDComponentPlugins = require('./getUMDComponentPlugins');
|
|
53
|
-
|
|
54
|
-
Object.defineProperty(exports, 'getUMDComponentPlugins', {
|
|
36
|
+
Object.defineProperty(exports, "getUMDCSSPlugins", {
|
|
55
37
|
enumerable: true,
|
|
56
|
-
get: function
|
|
57
|
-
return
|
|
38
|
+
get: function () {
|
|
39
|
+
return _getUMDCSSPlugins.default;
|
|
58
40
|
}
|
|
59
41
|
});
|
|
60
|
-
|
|
61
|
-
var _getUMDCSSPlugins = require('./getUMDCSSPlugins');
|
|
62
|
-
|
|
63
|
-
Object.defineProperty(exports, 'getUMDCSSPlugins', {
|
|
42
|
+
Object.defineProperty(exports, "getUMDComponentPlugins", {
|
|
64
43
|
enumerable: true,
|
|
65
|
-
get: function
|
|
66
|
-
return
|
|
44
|
+
get: function () {
|
|
45
|
+
return _getUMDComponentPlugins.default;
|
|
67
46
|
}
|
|
68
47
|
});
|
|
69
48
|
|
|
49
|
+
var _getDevPlugins = _interopRequireDefault(require("./getDevPlugins"));
|
|
50
|
+
|
|
51
|
+
var _getProdPlugins = _interopRequireDefault(require("./getProdPlugins"));
|
|
52
|
+
|
|
53
|
+
var _getDocsPlugins = _interopRequireDefault(require("./getDocsPlugins"));
|
|
54
|
+
|
|
55
|
+
var _getServerPlugins = _interopRequireDefault(require("./getServerPlugins"));
|
|
56
|
+
|
|
57
|
+
var _getLibraryPlugins = _interopRequireDefault(require("./getLibraryPlugins"));
|
|
58
|
+
|
|
59
|
+
var _getUMDComponentPlugins = _interopRequireDefault(require("./getUMDComponentPlugins"));
|
|
60
|
+
|
|
61
|
+
var _getUMDCSSPlugins = _interopRequireDefault(require("./getUMDCSSPlugins"));
|
|
62
|
+
|
|
70
63
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -0,0 +1,63 @@
|
|
|
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 MODULE_TYPE = 'css/mini-extract';
|
|
13
|
+
|
|
14
|
+
const isI18nFile = url => url.endsWith(".i18n.js");
|
|
15
|
+
|
|
16
|
+
class CdnChangePlugin {
|
|
17
|
+
constructor(options) {
|
|
18
|
+
this.i18nTemplate = options.i18nTemplate || '{{__I18N_CDN__}}';
|
|
19
|
+
this.variableName = options.variableName || '__CSS_CDN__';
|
|
20
|
+
this.cssTemplate = options.cssTemplate || '{{__CSS_CDN__}}';
|
|
21
|
+
this.jsTemplate = options.jsTemplate || '{{__JS_CDN__}}';
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
getCssChunkObject(mainChunk) {
|
|
25
|
+
const obj = {};
|
|
26
|
+
|
|
27
|
+
for (const chunk of mainChunk.getAllAsyncChunks()) {
|
|
28
|
+
for (const module of chunk.modulesIterable) {
|
|
29
|
+
if (module.type === MODULE_TYPE) {
|
|
30
|
+
obj[chunk.id] = 1;
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return obj;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
apply(compiler) {
|
|
40
|
+
compiler.hooks.thisCompilation.tap('CdnChangePlugin', compilation => {
|
|
41
|
+
compilation.mainTemplate.hooks.requireEnsure.tap('CdnChangePlugin', (source, chunk) => {
|
|
42
|
+
const chunkMap = this.getCssChunkObject(chunk);
|
|
43
|
+
|
|
44
|
+
if (Object.keys(chunkMap).length > 0) {
|
|
45
|
+
return source.replace('__webpack_require__.p', `window['${this.variableName}']`);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
compiler.hooks.make.tap('CdnChangePlugin', compilation => {
|
|
50
|
+
_htmlWebpackPlugin.default.getHooks(compilation).beforeAssetTagGeneration.tapAsync('CdnChangePlugin', (data, cb) => {
|
|
51
|
+
data.assets = Object.assign({}, data.assets, {
|
|
52
|
+
css: data.assets.css.map(css => `${this.cssTemplate}${css}`),
|
|
53
|
+
js: data.assets.js.map(js => `${isI18nFile(js) ? this.i18nTemplate : this.jsTemplate}${js}`)
|
|
54
|
+
});
|
|
55
|
+
cb(null, data);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
var _default = CdnChangePlugin;
|
|
63
|
+
exports.default = _default;
|