@zohodesk/react-cli 0.0.1-exp.175.1 → 0.0.1-exp.176.11
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +35 -40
- package/docs/SelectorWeight.md +6 -0
- package/docs/VariableConversion.md +33 -1
- package/lib/babel/cmjs-plugins-presets.js +4 -0
- package/lib/babel/es-plugins-presets.js +4 -0
- package/lib/common/getEntries.js +10 -0
- package/lib/common/getPublicPathConfig.js +6 -0
- package/lib/common/index.js +5 -0
- package/lib/common/splitChunks.js +13 -2
- package/lib/common/sslcertUpdater.js +17 -6
- package/lib/common/templateParameters.js +2 -0
- package/lib/common/testPattern.js +21 -10
- package/lib/common/valueReplacer.js +15 -0
- package/lib/configs/jest.config.js +9 -0
- package/lib/configs/libAlias.js +2 -4
- package/lib/configs/webpack.component.umd.config.js +5 -0
- package/lib/configs/webpack.css.umd.config.js +13 -5
- package/lib/configs/webpack.dev.config.js +36 -2
- package/lib/configs/webpack.docs.config.js +21 -1
- package/lib/configs/webpack.impact.config.js +19 -1
- package/lib/configs/webpack.prod.config.js +37 -3
- package/lib/hooks/docsProptypeHook.js +7 -3
- package/lib/jest/commitedFilesResult.js +45 -3
- package/lib/jest/coverageCollector.js +11 -0
- package/lib/jest/jsonMaker.js +6 -0
- package/lib/jest/preProcessors/cssPreprocessor.js +8 -0
- package/lib/jest/preProcessors/jsPreprocessor.js +2 -0
- package/lib/jest/preProcessors/otherFilesPreprocessor.js +3 -0
- package/lib/jest/result.js +22 -0
- package/lib/jest/run.js +17 -6
- package/lib/jest/setup.js +57 -5
- package/lib/loaderUtils/configsAssetsLoaders.js +11 -1
- package/lib/loaderUtils/getCSSLoaders.js +35 -20
- package/lib/loaderUtils/getDevJsLoaders.js +8 -0
- package/lib/loaderUtils/index.js +3 -0
- package/lib/loaderUtils/windowsModification.js +11 -0
- package/lib/loaders/docsLoader.js +7 -0
- package/lib/loaders/docsPropsLoader.js +7 -3
- package/lib/loaders/fileBountryLoader.js +2 -0
- package/lib/loaders/fileLoader.js +22 -11
- package/lib/loaders/scriptInstrumentLoader.js +13 -5
- package/lib/loaders/selectorMappingLoader.js +25 -7
- package/lib/loaders/workerLoader.js +20 -4
- package/lib/middlewares/HMRMiddleware.js +26 -13
- package/lib/middlewares/SSTMiddleware.js +3 -0
- package/lib/pluginUtils/configHtmlWebpackPlugins.js +9 -3
- package/lib/pluginUtils/getDevPlugins.js +63 -17
- package/lib/pluginUtils/getDocsPlugins.js +10 -1
- package/lib/pluginUtils/getLibraryImactPlugins.js +5 -4
- package/lib/pluginUtils/getLibraryPlugins.js +5 -0
- package/lib/pluginUtils/getProdPlugins.js +72 -23
- package/lib/pluginUtils/getServerPlugins.js +5 -0
- package/lib/pluginUtils/getUMDCSSPlugins.js +7 -0
- package/lib/pluginUtils/getUMDComponentPlugins.js +7 -0
- package/lib/pluginUtils/index.js +8 -0
- package/lib/plugins/CdnChangePlugin.js +14 -0
- package/lib/plugins/CleanupStatsPlugin.js +5 -0
- package/lib/plugins/EFCPlugin.js +34 -23
- package/lib/plugins/EFCTemplatePlugin.js +32 -23
- package/lib/plugins/I18NInjectIntoIndexPlugin.js +34 -8
- package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +17 -12
- package/lib/plugins/I18nSplitPlugin/I18nDependency.js +10 -4
- package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +39 -8
- package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +29 -14
- package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +22 -13
- package/lib/plugins/I18nSplitPlugin/index.js +23 -13
- package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +12 -2
- package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +1 -0
- package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +5 -0
- package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +6 -0
- package/lib/plugins/I18nSplitPlugin/utils/index.js +4 -0
- package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +20 -2
- package/lib/plugins/ManifestPlugin.js +17 -0
- package/lib/plugins/ModuleStatsPlugin.js +23 -0
- package/lib/plugins/OptimizeJSPlugin.js +7 -0
- package/lib/plugins/PublicPathCallbackPlugin.js +10 -0
- package/lib/plugins/PublicPathChangePlugin.js +36 -4
- package/lib/plugins/ReportGeneratePlugin.js +30 -4
- package/lib/plugins/RequireVariablePublicPlugin.js +6 -0
- package/lib/plugins/ResourceHintsPlugin.js +10 -3
- package/lib/plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +17 -12
- package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +16 -9
- package/lib/plugins/RtlSplitPlugin/replaceCssDirTemplate.js +5 -2
- package/lib/plugins/ScriptInstrumentPlugin.js +7 -0
- package/lib/plugins/SelectorPlugin.js +97 -0
- package/lib/plugins/ServiceWorkerPlugin.js +20 -4
- package/lib/plugins/ShadowDOMSupportPlugin.js +40 -3
- package/lib/plugins/SourceMapHookPlugin.js +9 -0
- package/lib/plugins/TPHashMappingPlugin.js +15 -1
- package/lib/plugins/UglifyCSSPlugin.js +9 -0
- package/lib/plugins/UnusedFilesFindPlugin.js +35 -2
- package/lib/plugins/VariableConversionCollector.js +252 -0
- package/lib/plugins/composeCommonPlugin.js +30 -0
- package/lib/plugins/index.js +19 -0
- package/lib/plugins/libraryImpactPlugin.js +32 -0
- package/lib/plugins/webpackwatchrunplugin.js +5 -0
- package/lib/postcss-plugins/ExcludePlugin.js +4 -0
- package/lib/postcss-plugins/RTLSplitPlugin.js +27 -14
- package/lib/postcss-plugins/ValueReplacer.js +6 -9
- package/lib/postcss-plugins/__test__/hoverActivePlugin.spec.js +3 -0
- package/lib/postcss-plugins/hoverActivePlugin.js +66 -30
- package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +40 -13
- package/lib/postcss-plugins/variableModificationPlugin/index.js +215 -141
- package/lib/postcss-plugins/variableModifier.js +20 -13
- package/lib/schemas/index.js +23 -4
- package/lib/servers/clusterHubServer.js +10 -0
- package/lib/servers/devBuild.js +24 -13
- package/lib/servers/docsServer.js +2 -0
- package/lib/servers/docsServerCore.js +21 -0
- package/lib/servers/getCliPath.js +9 -0
- package/lib/servers/helpServer.js +5 -0
- package/lib/servers/httpsOptions.js +4 -0
- package/lib/servers/impactServer.js +34 -2
- package/lib/servers/mockserver.js +9 -0
- package/lib/servers/nowatchserver.js +34 -12
- package/lib/servers/scrServer.js +20 -13
- package/lib/servers/server.js +35 -7
- package/lib/servers/ssServer.js +16 -0
- package/lib/templates/CoverageScriptTemplate.js +14 -0
- package/lib/templates/WMSTemplate.js +12 -6
- package/lib/utils/babelPresets.js +2 -0
- package/lib/utils/clean.js +8 -2
- package/lib/utils/copy.js +6 -0
- package/lib/utils/copyTimezones.js +8 -0
- package/lib/utils/createEventStream.js +4 -0
- package/lib/utils/cssClassNameGenerate.js +19 -3
- package/lib/utils/cssURLReplacer.js +50 -38
- package/lib/utils/dependencyPostPublish.js +9 -0
- package/lib/utils/fileUtils.js +26 -0
- package/lib/utils/folderIterator.js +10 -0
- package/lib/utils/getComponents.js +21 -0
- package/lib/utils/getCurrentBranch.js +5 -0
- package/lib/utils/getDependenciesImpactList.js +21 -0
- package/lib/utils/getFileType.js +49 -0
- package/lib/utils/getHash.js +7 -0
- package/lib/utils/getIp.js +2 -0
- package/lib/utils/getOptions.js +39 -14
- package/lib/utils/getServerURL.js +7 -0
- package/lib/utils/index.js +47 -2
- package/lib/utils/init.js +1 -0
- package/lib/utils/initPreCommitHook.js +29 -6
- package/lib/utils/jsonHelper.js +19 -2
- package/lib/utils/libraryImpactConfig.js +2 -0
- package/lib/utils/lint/addScripts.js +5 -2
- package/lib/utils/lint/checkExistingConfig.js +12 -3
- package/lib/utils/lint/copyConfigs.js +3 -0
- package/lib/utils/lint/index.js +9 -0
- package/lib/utils/lint/lintScripts.js +1 -0
- package/lib/utils/lint/lintSetup.js +4 -3
- package/lib/utils/lint/lintStagedPreCommitHook.js +1 -0
- package/lib/utils/lint/question.js +7 -0
- package/lib/utils/lintReporter.js +20 -0
- package/lib/utils/mailSender.js +7 -0
- package/lib/utils/pullOrigin.js +4 -0
- package/lib/utils/reinstallDependencies.js +28 -0
- package/lib/utils/removeAttributes.js +7 -0
- package/lib/utils/repoClone.js +27 -2
- package/lib/utils/request.js +12 -0
- package/lib/utils/rtl.js +16 -4
- package/lib/utils/setEnvVariables.js +2 -0
- package/lib/utils/ssTestHack.js +10 -0
- package/lib/utils/switchBranch.js +4 -0
- package/lib/utils/urlConcat.js +4 -0
- package/lib/utils/useExitCleanup.js +10 -9
- package/package.json +10 -9
@@ -4,19 +4,38 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
+
|
7
8
|
var _path = _interopRequireDefault(require("path"));
|
9
|
+
|
8
10
|
var _fs = _interopRequireDefault(require("fs"));
|
11
|
+
|
9
12
|
var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
|
13
|
+
|
10
14
|
var _lodashWebpackPlugin = _interopRequireDefault(require("lodash-webpack-plugin"));
|
15
|
+
|
11
16
|
var _miniCssExtractPlugin = _interopRequireDefault(require("mini-css-extract-plugin"));
|
17
|
+
|
12
18
|
var _I18nSplitPlugin = _interopRequireDefault(require("../plugins/I18nSplitPlugin"));
|
19
|
+
|
13
20
|
var _RequireVariablePublicPlugin = _interopRequireDefault(require("../plugins/RequireVariablePublicPlugin"));
|
21
|
+
|
14
22
|
var _copyWebpackPlugin = _interopRequireDefault(require("copy-webpack-plugin"));
|
23
|
+
|
15
24
|
var _webpack = _interopRequireDefault(require("webpack"));
|
25
|
+
|
16
26
|
var _plugins = require("../plugins");
|
27
|
+
|
17
28
|
var _RtlCssPlugin = require("../plugins/RtlSplitPlugin/RtlCssPlugin");
|
29
|
+
|
30
|
+
var _VariableConversionCollector = _interopRequireDefault(require("../plugins/VariableConversionCollector"));
|
31
|
+
|
32
|
+
var _SelectorPlugin = _interopRequireDefault(require("../plugins/SelectorPlugin"));
|
33
|
+
|
18
34
|
var _configHtmlWebpackPlugins = require("./configHtmlWebpackPlugins");
|
35
|
+
|
19
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
37
|
+
|
38
|
+
// import { windowsModification } from '../loaderUtils/windowsModification';
|
20
39
|
const getDevPlugins = (options, publicPath) => {
|
21
40
|
const {
|
22
41
|
app: {
|
@@ -27,6 +46,10 @@ const getDevPlugins = (options, publicPath) => {
|
|
27
46
|
context,
|
28
47
|
hasEFC: prevOptionForEnableEFC,
|
29
48
|
hasShadowDOM,
|
49
|
+
cssVariableReplacementConfig,
|
50
|
+
plugins: pluginObject,
|
51
|
+
// exclude,
|
52
|
+
selectorWeightConfig,
|
30
53
|
server: {
|
31
54
|
mode
|
32
55
|
},
|
@@ -49,8 +72,9 @@ const getDevPlugins = (options, publicPath) => {
|
|
49
72
|
} = options;
|
50
73
|
const hasEFC = newOptionForEnableEFC || prevOptionForEnableEFC;
|
51
74
|
const cssLTRFileNameTempalte = enableRTLSplit ? 'css/[name].ltr.css' : 'css/[name].css';
|
52
|
-
const cssRTLFileNameTempalte = 'css/[name].rtl.css';
|
53
|
-
|
75
|
+
const cssRTLFileNameTempalte = 'css/[name].rtl.css'; // const selectorWeightLocal = windowsModification(exclude.selectorWeight);
|
76
|
+
|
77
|
+
const pluginsArr = [new _plugins.CleanUpStatsPlugin(), new _caseSensitivePathsWebpackPlugin.default(), new _webpack.default.IgnorePlugin(/^\.\/domain$/, /moment$/), new _webpack.default.DefinePlugin({
|
54
78
|
__CLIENT__: true,
|
55
79
|
__TEST__: false,
|
56
80
|
__SERVER__: false,
|
@@ -66,8 +90,9 @@ const getDevPlugins = (options, publicPath) => {
|
|
66
90
|
// ignoreOrder: true,
|
67
91
|
chunkFilename: cssLTRFileNameTempalte
|
68
92
|
}), new _plugins.ResourceHintsPlugin()];
|
93
|
+
|
69
94
|
if (enableRTLSplit) {
|
70
|
-
|
95
|
+
pluginsArr.push(new _RtlCssPlugin.RtlCssPlugin({
|
71
96
|
templateLabel: options.css.templateLabel,
|
72
97
|
dirVarName: options.css.dirVarName,
|
73
98
|
disableMiniFiySelector: options.css.disableMiniFiySelector,
|
@@ -76,11 +101,13 @@ const getDevPlugins = (options, publicPath) => {
|
|
76
101
|
filename: cssRTLFileNameTempalte
|
77
102
|
}));
|
78
103
|
}
|
104
|
+
|
79
105
|
if (unusedFiles.enable) {
|
80
|
-
|
106
|
+
pluginsArr.push(new _plugins.UnusedFilesFindPlugin(Object.assign(unusedFiles, {
|
81
107
|
origin: _path.default.join(process.cwd(), folder)
|
82
108
|
})));
|
83
109
|
}
|
110
|
+
|
84
111
|
const i18nManifestFileName = 'i18n-manifest.json';
|
85
112
|
/**
|
86
113
|
* NOTE:
|
@@ -91,8 +118,9 @@ const getDevPlugins = (options, publicPath) => {
|
|
91
118
|
|
92
119
|
const i18nFileNameTemplate = 'i18n-chunk/[locale]/[name].i18n.js';
|
93
120
|
const i18nPublicPath = publicPath || '';
|
121
|
+
|
94
122
|
if (i18n.chunkSplitEnable) {
|
95
|
-
|
123
|
+
pluginsArr.push(new _I18nSplitPlugin.default({
|
96
124
|
jsResource: i18n.jsResource,
|
97
125
|
localeVarName: i18n.localeVarName,
|
98
126
|
jsonpFunc: i18n.jsonpFunc,
|
@@ -105,24 +133,26 @@ const getDevPlugins = (options, publicPath) => {
|
|
105
133
|
}));
|
106
134
|
} else {
|
107
135
|
const i18nPath = _path.default.join(process.cwd(), context, 'i18n');
|
136
|
+
|
108
137
|
if (_fs.default.existsSync(i18nPath)) {
|
109
|
-
|
138
|
+
pluginsArr.push(new _copyWebpackPlugin.default([{
|
110
139
|
from: `${i18nPath}/`,
|
111
140
|
to: './i18n/[name].[ext]',
|
112
141
|
toType: 'template'
|
113
142
|
}]));
|
114
143
|
}
|
115
144
|
}
|
116
|
-
|
145
|
+
|
146
|
+
tpFolder && pluginsArr.push(new _copyWebpackPlugin.default([{
|
117
147
|
from: `${_path.default.join(process.cwd(), context, tpFolder)}/`,
|
118
148
|
to: `./${tpFolder}/`,
|
119
149
|
toType: 'dir'
|
120
150
|
}]));
|
121
|
-
|
151
|
+
pluginsArr.push(new _lodashWebpackPlugin.default({
|
122
152
|
collections: true,
|
123
153
|
shorthands: true
|
124
154
|
}));
|
125
|
-
(0, _configHtmlWebpackPlugins.configHtmlWebpackPlugins)(
|
155
|
+
(0, _configHtmlWebpackPlugins.configHtmlWebpackPlugins)(pluginsArr, {
|
126
156
|
enableChunkHash: false,
|
127
157
|
folder,
|
128
158
|
minify: false,
|
@@ -130,8 +160,9 @@ const getDevPlugins = (options, publicPath) => {
|
|
130
160
|
crossorigin,
|
131
161
|
hasEFC
|
132
162
|
});
|
163
|
+
|
133
164
|
if (hasEFC) {
|
134
|
-
|
165
|
+
pluginsArr.push(new _plugins.EFCPlugin({
|
135
166
|
isDevelopment: true,
|
136
167
|
i18nManifestFileName,
|
137
168
|
templateFilePath,
|
@@ -139,12 +170,12 @@ const getDevPlugins = (options, publicPath) => {
|
|
139
170
|
serverUrl: publicPath,
|
140
171
|
entryPointName: 'efc',
|
141
172
|
nameScope: efcNameSpace,
|
142
|
-
localeAttr: efcLocaleAttr
|
143
|
-
|
173
|
+
localeAttr: efcLocaleAttr // outputFile: 'zohodesk-efc-sdk-latest.js',
|
174
|
+
|
144
175
|
}));
|
145
176
|
}
|
146
177
|
|
147
|
-
|
178
|
+
pluginsArr.push(new _plugins.I18NInjectIntoIndexPlugin({
|
148
179
|
publicPath: i18nPublicPath,
|
149
180
|
isDevelopment: true,
|
150
181
|
templateLabel: i18n.templateLabel || '{{--user-locale}}',
|
@@ -152,14 +183,29 @@ const getDevPlugins = (options, publicPath) => {
|
|
152
183
|
i18nManifestFileName,
|
153
184
|
mainChunkName: 'main'
|
154
185
|
}));
|
155
|
-
instrumentScript &&
|
156
|
-
hasShadowDOM &&
|
186
|
+
instrumentScript && pluginsArr.push(new _plugins.ScriptInstrumentPlugin());
|
187
|
+
hasShadowDOM && pluginsArr.push(new _plugins.ShadowDOMSupportPlugin());
|
188
|
+
|
157
189
|
if (devCssFileBountry) {
|
158
|
-
|
190
|
+
pluginsArr.push(new _RequireVariablePublicPlugin.default({
|
159
191
|
requireFuncName: 'require'
|
160
192
|
}));
|
161
193
|
}
|
162
|
-
|
194
|
+
|
195
|
+
if (pluginObject.cssVariableReplacement) {
|
196
|
+
pluginsArr.push(new _VariableConversionCollector.default({
|
197
|
+
cssVariableReplacementConfig
|
198
|
+
}));
|
199
|
+
}
|
200
|
+
|
201
|
+
if (pluginObject.selectorWeight) {
|
202
|
+
pluginsArr.push(new _SelectorPlugin.default({
|
203
|
+
selectorWeightConfig
|
204
|
+
}));
|
205
|
+
}
|
206
|
+
|
207
|
+
return pluginsArr.filter(Boolean);
|
163
208
|
};
|
209
|
+
|
164
210
|
var _default = getDevPlugins;
|
165
211
|
exports.default = _default;
|
@@ -4,15 +4,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
+
|
7
8
|
var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
|
9
|
+
|
8
10
|
var _miniCssExtractPlugin = _interopRequireDefault(require("mini-css-extract-plugin"));
|
11
|
+
|
9
12
|
var _webpack = _interopRequireDefault(require("webpack"));
|
13
|
+
|
10
14
|
var _path = _interopRequireDefault(require("path"));
|
15
|
+
|
11
16
|
var _plugins = require("../plugins");
|
17
|
+
|
12
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
19
|
+
|
13
20
|
// isForLibraryImpact this variable for now only used in getLibraryImactPlugins.
|
14
21
|
// So you gona use it please check with that function as well
|
15
|
-
|
16
22
|
let getDocsPlugins = (isSSTest, options, isForLibraryImpact = false) => {
|
17
23
|
let {
|
18
24
|
app: {
|
@@ -32,6 +38,7 @@ let getDocsPlugins = (isSSTest, options, isForLibraryImpact = false) => {
|
|
32
38
|
filename: 'css/[name].css',
|
33
39
|
chunkFilename: 'css/[name].css'
|
34
40
|
})].filter(Boolean);
|
41
|
+
|
35
42
|
if (unusedFiles.enable) {
|
36
43
|
plugins.push(new _plugins.UnusedFilesFindPlugin(Object.assign(unusedFiles, {
|
37
44
|
docsFilename: 'Undocsfiles.json',
|
@@ -39,7 +46,9 @@ let getDocsPlugins = (isSSTest, options, isForLibraryImpact = false) => {
|
|
39
46
|
origin: _path.default.join(process.cwd(), folder)
|
40
47
|
})));
|
41
48
|
}
|
49
|
+
|
42
50
|
return plugins;
|
43
51
|
};
|
52
|
+
|
44
53
|
var _default = getDocsPlugins;
|
45
54
|
exports.default = _default;
|
@@ -4,15 +4,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = getLibraryImactPlugins;
|
7
|
+
|
7
8
|
var _libraryImpactPlugin = _interopRequireDefault(require("../plugins/libraryImpactPlugin"));
|
9
|
+
|
8
10
|
var _getDocsPlugins = _interopRequireDefault(require("./getDocsPlugins"));
|
11
|
+
|
9
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
10
|
-
// import ModuleStatsPlugin from '../plugins/ModuleStatsPlugin';
|
11
13
|
|
14
|
+
// import ModuleStatsPlugin from '../plugins/ModuleStatsPlugin';
|
12
15
|
function getLibraryImactPlugins(options) {
|
13
|
-
let plugins = (0, _getDocsPlugins.default)(false, options, true);
|
14
|
-
|
15
|
-
// for performance But for furture maintanablity we adding isForLibraryImpact in getDocsPlugin
|
16
|
+
let plugins = (0, _getDocsPlugins.default)(false, options, true); // for performance But for furture maintanablity we adding isForLibraryImpact in getDocsPlugin
|
16
17
|
// plugins.filter(plugin => !(plugin instanceof ModuleStatsPlugin));
|
17
18
|
|
18
19
|
plugins.push(new _libraryImpactPlugin.default({
|
@@ -4,9 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
+
|
7
8
|
var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
|
9
|
+
|
8
10
|
var _webpack = _interopRequireDefault(require("webpack"));
|
11
|
+
|
9
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
|
+
|
10
14
|
let getLibraryPlugins = () => {
|
11
15
|
let plugins = [new _caseSensitivePathsWebpackPlugin.default(), new _webpack.default.DefinePlugin({
|
12
16
|
__TEST__: false,
|
@@ -19,5 +23,6 @@ let getLibraryPlugins = () => {
|
|
19
23
|
})];
|
20
24
|
return plugins;
|
21
25
|
};
|
26
|
+
|
22
27
|
var _default = getLibraryPlugins;
|
23
28
|
exports.default = _default;
|
@@ -4,19 +4,37 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
+
|
7
8
|
var _path = _interopRequireDefault(require("path"));
|
9
|
+
|
8
10
|
var _fs = _interopRequireDefault(require("fs"));
|
11
|
+
|
9
12
|
var _webpack = _interopRequireDefault(require("webpack"));
|
13
|
+
|
10
14
|
var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
|
15
|
+
|
11
16
|
var _webpackBundleAnalyzer = require("webpack-bundle-analyzer");
|
17
|
+
|
12
18
|
var _lodashWebpackPlugin = _interopRequireDefault(require("lodash-webpack-plugin"));
|
19
|
+
|
13
20
|
var _miniCssExtractPlugin = _interopRequireDefault(require("mini-css-extract-plugin"));
|
21
|
+
|
14
22
|
var _I18nSplitPlugin = _interopRequireDefault(require("../plugins/I18nSplitPlugin"));
|
23
|
+
|
15
24
|
var _copyWebpackPlugin = _interopRequireDefault(require("copy-webpack-plugin"));
|
25
|
+
|
26
|
+
var _VariableConversionCollector = _interopRequireDefault(require("../plugins/VariableConversionCollector"));
|
27
|
+
|
28
|
+
var _SelectorPlugin = _interopRequireDefault(require("../plugins/SelectorPlugin"));
|
29
|
+
|
16
30
|
var _plugins = require("../plugins");
|
31
|
+
|
17
32
|
var _RtlCssPlugin = require("../plugins/RtlSplitPlugin/RtlCssPlugin");
|
33
|
+
|
18
34
|
var _configHtmlWebpackPlugins = require("./configHtmlWebpackPlugins");
|
35
|
+
|
19
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
37
|
+
|
20
38
|
// eslint-disable-next-line no-unused-vars
|
21
39
|
const getProdPlugins = (options, publicPath = '') => {
|
22
40
|
let {
|
@@ -38,6 +56,10 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
38
56
|
mode
|
39
57
|
},
|
40
58
|
hasShadowDOM,
|
59
|
+
cssVariableReplacementConfig,
|
60
|
+
plugins: pluginObject,
|
61
|
+
// exclude,
|
62
|
+
selectorWeightConfig,
|
41
63
|
resourceHints,
|
42
64
|
serviceWorker,
|
43
65
|
htmlTemplate,
|
@@ -67,7 +89,7 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
67
89
|
const cssRTLFileNameTempalte = `css/[name]${hashTempalate}.rtl.css`;
|
68
90
|
const isDevelopment = mode === 'prod' || mode === 'dev' || mode === 'dev-no-warn';
|
69
91
|
enableChunkHash = !isDevelopment && enableChunkHash;
|
70
|
-
const
|
92
|
+
const pluginsArr = [new _caseSensitivePathsWebpackPlugin.default(), new _webpack.default.IgnorePlugin(/^\.\/locale$/, /moment$/), new _webpack.default.DefinePlugin({
|
71
93
|
__TEST__: false,
|
72
94
|
__DEVELOPMENT__: false,
|
73
95
|
__LOCAL_PRODUCTION__: isDevelopment,
|
@@ -81,8 +103,9 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
81
103
|
filename: cssLTRFileNameTempalte,
|
82
104
|
chunkFilename: cssLTRFileNameTempalte
|
83
105
|
}), new _plugins.ResourceHintsPlugin(), new _plugins.UglifyCSSPlugin()];
|
106
|
+
|
84
107
|
if (enableRTLSplit) {
|
85
|
-
|
108
|
+
pluginsArr.push(new _RtlCssPlugin.RtlCssPlugin({
|
86
109
|
templateLabel: options.css.templateLabel,
|
87
110
|
disableMiniFiySelector: options.css.disableMiniFiySelector,
|
88
111
|
dirVarName: options.css.dirVarName,
|
@@ -91,6 +114,7 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
91
114
|
filename: cssRTLFileNameTempalte
|
92
115
|
}));
|
93
116
|
}
|
117
|
+
|
94
118
|
const i18nManifestFileName = 'i18n-manifest.json';
|
95
119
|
/**
|
96
120
|
* NOTE:
|
@@ -100,12 +124,11 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
100
124
|
*/
|
101
125
|
|
102
126
|
const i18nFileNameTemplate = 'i18n-chunk/[locale]/[name].[chunkhash].i18n.js';
|
103
|
-
const i18nPublicPath = Array.isArray(publicPaths) && !cdnMapping.isCdnEnabled ? publicPaths['4'] : '';
|
104
|
-
// const i18nFileNameTemplate = 'i18n-chunk/[locale]/[name].[contentHash]_.js';
|
127
|
+
const i18nPublicPath = Array.isArray(publicPaths) && !cdnMapping.isCdnEnabled ? publicPaths['4'] : ''; // const i18nFileNameTemplate = 'i18n-chunk/[locale]/[name].[contentHash]_.js';
|
105
128
|
// const i18nFileNameTemplate = 'i18n-chunk/[locale]/[name]_.js';
|
106
129
|
|
107
130
|
if (i18n.chunkSplitEnable) {
|
108
|
-
|
131
|
+
pluginsArr.push(new _I18nSplitPlugin.default({
|
109
132
|
jsResource: i18n.jsResource,
|
110
133
|
localeVarName: i18n.localeVarName,
|
111
134
|
jsonpFunc: i18n.jsonpFunc,
|
@@ -118,20 +141,22 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
118
141
|
}));
|
119
142
|
} else {
|
120
143
|
const i18nPath = _path.default.join(process.cwd(), context, 'i18n');
|
144
|
+
|
121
145
|
if (_fs.default.existsSync(i18nPath)) {
|
122
|
-
|
146
|
+
pluginsArr.push(new _copyWebpackPlugin.default([{
|
123
147
|
from: `${i18nPath}/`,
|
124
148
|
to: enableChunkHash ? './i18n/[name].[hash:20]_.[ext]' : './i18n/[name]_.[ext]',
|
125
149
|
toType: 'template'
|
126
150
|
}]));
|
127
151
|
}
|
128
152
|
}
|
129
|
-
|
153
|
+
|
154
|
+
tpFolder && pluginsArr.push(new _copyWebpackPlugin.default([{
|
130
155
|
from: `${_path.default.join(process.cwd(), context, tpFolder)}/`,
|
131
156
|
to: `./${tpFolder}/`,
|
132
157
|
toType: 'dir'
|
133
158
|
}]));
|
134
|
-
(0, _configHtmlWebpackPlugins.configHtmlWebpackPlugins)(
|
159
|
+
(0, _configHtmlWebpackPlugins.configHtmlWebpackPlugins)(pluginsArr, {
|
135
160
|
enableChunkHash,
|
136
161
|
folder,
|
137
162
|
inject,
|
@@ -139,8 +164,9 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
139
164
|
crossorigin,
|
140
165
|
hasEFC
|
141
166
|
});
|
167
|
+
|
142
168
|
if (hasEFC) {
|
143
|
-
|
169
|
+
pluginsArr.push(new _plugins.EFCPlugin({
|
144
170
|
isDevelopment,
|
145
171
|
serverUrl: publicPath,
|
146
172
|
i18nFileNameTemplate,
|
@@ -153,7 +179,8 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
153
179
|
cdnVariableName: cdnMapping.isCdnEnabled ? cdnMapping.variableName : null
|
154
180
|
}));
|
155
181
|
}
|
156
|
-
|
182
|
+
|
183
|
+
pluginsArr.push(new _plugins.I18NInjectIntoIndexPlugin({
|
157
184
|
// Because we will handle cdn url in CdnChangePlugin
|
158
185
|
publicPath: cdnMapping.isCdnEnabled ? '' : i18nPublicPath,
|
159
186
|
isDevelopment,
|
@@ -162,33 +189,38 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
162
189
|
i18nManifestFileName,
|
163
190
|
mainChunkName: 'main'
|
164
191
|
}));
|
192
|
+
|
165
193
|
if (publicPaths && !isDevelopment && !cdnMapping.isCdnEnabled) {
|
166
194
|
const {
|
167
195
|
callback
|
168
196
|
} = publicPaths;
|
169
|
-
|
197
|
+
pluginsArr.push(callback ? new _plugins.PublicPathCallbackPlugin({
|
170
198
|
callback
|
171
199
|
}) : new _plugins.PublicPathChangePlugin({
|
172
200
|
publicPaths,
|
173
201
|
resourceHints
|
174
202
|
}));
|
175
203
|
}
|
204
|
+
|
176
205
|
if (cdnMapping.isCdnEnabled) {
|
177
|
-
|
206
|
+
pluginsArr.push(new _plugins.CdnChangePlugin(cdnMapping));
|
178
207
|
}
|
179
|
-
|
208
|
+
|
209
|
+
pluginsArr.push(new _lodashWebpackPlugin.default({
|
180
210
|
collections: true,
|
181
211
|
shorthands: true
|
182
212
|
}));
|
183
|
-
hasShadowDOM &&
|
213
|
+
hasShadowDOM && pluginsArr.push(new _plugins.ShadowDOMSupportPlugin());
|
214
|
+
|
184
215
|
if (!isDevelopment) {
|
185
|
-
enableSMap && enableSMapHook &&
|
186
|
-
optimize &&
|
187
|
-
|
216
|
+
enableSMap && enableSMapHook && pluginsArr.push(new _plugins.SourceMapHookPlugin());
|
217
|
+
optimize && pluginsArr.push(new _plugins.OptimizeJSPlugin());
|
218
|
+
pluginsArr.push(new _plugins.ManifestPlugin({
|
188
219
|
fileName: manifestFileName
|
189
220
|
}));
|
221
|
+
|
190
222
|
if (bundleAnalyze) {
|
191
|
-
|
223
|
+
pluginsArr.push(new _webpackBundleAnalyzer.BundleAnalyzerPlugin({
|
192
224
|
analyzerMode: 'static',
|
193
225
|
generateStatsFile: true,
|
194
226
|
openAnalyzer: false,
|
@@ -201,17 +233,17 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
201
233
|
assets: true,
|
202
234
|
assetsSort: 'name'
|
203
235
|
}
|
204
|
-
}));
|
205
|
-
// plugins.push(new ReportGeneratePlugin());
|
236
|
+
})); // plugins.push(new ReportGeneratePlugin());
|
206
237
|
}
|
207
238
|
|
208
239
|
if (tpHashMapping && tpHashMapping.length > 0) {
|
209
|
-
|
240
|
+
pluginsArr.push(new _plugins.TPHashMappingPlugin({
|
210
241
|
fileMappings: tpHashMapping,
|
211
242
|
tpFolder: `${_path.default.join(process.cwd(), context, tpFolder)}/`
|
212
243
|
}));
|
213
244
|
}
|
214
245
|
}
|
246
|
+
|
215
247
|
if (!isDevelopment && serviceWorker.enableSw) {
|
216
248
|
const {
|
217
249
|
filePath,
|
@@ -219,10 +251,12 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
219
251
|
exitPath = '/',
|
220
252
|
replaceText = '@@'
|
221
253
|
} = serviceWorker;
|
254
|
+
|
222
255
|
if (!filePath) {
|
223
256
|
throw new Error('File Path required for service worker plugin');
|
224
257
|
}
|
225
|
-
|
258
|
+
|
259
|
+
pluginsArr.push(new _plugins.ServiceWorkerPlugin({
|
226
260
|
filePath: _path.default.join(process.cwd(), filePath),
|
227
261
|
i18nFileNameTemplate,
|
228
262
|
fileName: fileName,
|
@@ -231,7 +265,22 @@ const getProdPlugins = (options, publicPath = '') => {
|
|
231
265
|
publicPaths
|
232
266
|
}));
|
233
267
|
}
|
234
|
-
|
268
|
+
|
269
|
+
if (pluginObject.cssVariableReplacement) {
|
270
|
+
pluginsArr.push(new _VariableConversionCollector.default({
|
271
|
+
cssVariableReplacementConfig
|
272
|
+
}));
|
273
|
+
}
|
274
|
+
|
275
|
+
if (pluginObject.selectorWeight) {
|
276
|
+
pluginsArr.push(new _SelectorPlugin.default({
|
277
|
+
selectorWeightConfig
|
278
|
+
}));
|
279
|
+
} // plugins.push(new VariableConversionCollector({}));
|
280
|
+
|
281
|
+
|
282
|
+
return pluginsArr;
|
235
283
|
};
|
284
|
+
|
236
285
|
var _default = getProdPlugins;
|
237
286
|
exports.default = _default;
|
@@ -4,9 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
+
|
7
8
|
var _webpack = _interopRequireDefault(require("webpack"));
|
9
|
+
|
8
10
|
var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
|
11
|
+
|
9
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
|
+
|
10
14
|
let getProdPlugins = () => {
|
11
15
|
let plugins = [new _webpack.default.optimize.ModuleConcatenationPlugin(), new _caseSensitivePathsWebpackPlugin.default(), new _webpack.default.IgnorePlugin(/^\.\/domain$/, /moment$/), new _webpack.default.DefinePlugin({
|
12
16
|
__TEST__: false,
|
@@ -16,5 +20,6 @@ let getProdPlugins = () => {
|
|
16
20
|
})];
|
17
21
|
return plugins;
|
18
22
|
};
|
23
|
+
|
19
24
|
var _default = getProdPlugins;
|
20
25
|
exports.default = _default;
|
@@ -4,11 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
+
|
7
8
|
var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
|
9
|
+
|
8
10
|
var _miniCssExtractPlugin = _interopRequireDefault(require("mini-css-extract-plugin"));
|
11
|
+
|
9
12
|
var _plugins = require("../plugins");
|
13
|
+
|
10
14
|
var _webpack = _interopRequireDefault(require("webpack"));
|
15
|
+
|
11
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17
|
+
|
12
18
|
let getUMDCSSPlugins = () => {
|
13
19
|
let plugins = [new _caseSensitivePathsWebpackPlugin.default(), new _webpack.default.DefinePlugin({
|
14
20
|
__TEST__: false,
|
@@ -24,5 +30,6 @@ let getUMDCSSPlugins = () => {
|
|
24
30
|
}), new _plugins.UglifyCSSPlugin()];
|
25
31
|
return plugins;
|
26
32
|
};
|
33
|
+
|
27
34
|
var _default = getUMDCSSPlugins;
|
28
35
|
exports.default = _default;
|
@@ -4,11 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
+
|
7
8
|
var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
|
9
|
+
|
8
10
|
var _webpack = _interopRequireDefault(require("webpack"));
|
11
|
+
|
9
12
|
var _miniCssExtractPlugin = _interopRequireDefault(require("mini-css-extract-plugin"));
|
13
|
+
|
10
14
|
var _plugins = require("../plugins");
|
15
|
+
|
11
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17
|
+
|
12
18
|
let getUMDComponentPlugins = isDocs => {
|
13
19
|
let plugins = [new _caseSensitivePathsWebpackPlugin.default(), new _webpack.default.DefinePlugin({
|
14
20
|
__TEST__: false,
|
@@ -24,5 +30,6 @@ let getUMDComponentPlugins = isDocs => {
|
|
24
30
|
}), new _plugins.UglifyCSSPlugin()];
|
25
31
|
return plugins;
|
26
32
|
};
|
33
|
+
|
27
34
|
var _default = getUMDComponentPlugins;
|
28
35
|
exports.default = _default;
|
package/lib/pluginUtils/index.js
CHANGED
@@ -45,11 +45,19 @@ Object.defineProperty(exports, "getUMDComponentPlugins", {
|
|
45
45
|
return _getUMDComponentPlugins.default;
|
46
46
|
}
|
47
47
|
});
|
48
|
+
|
48
49
|
var _getDevPlugins = _interopRequireDefault(require("./getDevPlugins"));
|
50
|
+
|
49
51
|
var _getProdPlugins = _interopRequireDefault(require("./getProdPlugins"));
|
52
|
+
|
50
53
|
var _getDocsPlugins = _interopRequireDefault(require("./getDocsPlugins"));
|
54
|
+
|
51
55
|
var _getServerPlugins = _interopRequireDefault(require("./getServerPlugins"));
|
56
|
+
|
52
57
|
var _getLibraryPlugins = _interopRequireDefault(require("./getLibraryPlugins"));
|
58
|
+
|
53
59
|
var _getUMDComponentPlugins = _interopRequireDefault(require("./getUMDComponentPlugins"));
|
60
|
+
|
54
61
|
var _getUMDCSSPlugins = _interopRequireDefault(require("./getUMDCSSPlugins"));
|
62
|
+
|
55
63
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
@@ -4,16 +4,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
+
|
7
8
|
var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin"));
|
9
|
+
|
8
10
|
var _utils = require("../utils");
|
11
|
+
|
9
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
|
+
|
10
14
|
const MODULE_TYPE = 'css/mini-extract';
|
15
|
+
|
11
16
|
const isI18nFile = url => url.endsWith('.i18n.js');
|
17
|
+
|
12
18
|
const {
|
13
19
|
app: {
|
14
20
|
enableSMap
|
15
21
|
}
|
16
22
|
} = (0, _utils.getOptions)();
|
23
|
+
|
17
24
|
class CdnChangePlugin {
|
18
25
|
constructor(options) {
|
19
26
|
this.i18nTemplate = options.i18nTemplate || '{{__I18N_CDN__}}';
|
@@ -21,8 +28,10 @@ class CdnChangePlugin {
|
|
21
28
|
this.cssTemplate = options.cssTemplate || '{{__CSS_CDN__}}';
|
22
29
|
this.jsTemplate = options.jsTemplate || '{{__JS_CDN__}}';
|
23
30
|
}
|
31
|
+
|
24
32
|
getCssChunkObject(mainChunk) {
|
25
33
|
const obj = {};
|
34
|
+
|
26
35
|
for (const chunk of mainChunk.getAllAsyncChunks()) {
|
27
36
|
for (const module of chunk.modulesIterable) {
|
28
37
|
if (module.type === MODULE_TYPE) {
|
@@ -31,12 +40,15 @@ class CdnChangePlugin {
|
|
31
40
|
}
|
32
41
|
}
|
33
42
|
}
|
43
|
+
|
34
44
|
return obj;
|
35
45
|
}
|
46
|
+
|
36
47
|
apply(compiler) {
|
37
48
|
compiler.hooks.thisCompilation.tap('CdnChangePlugin', compilation => {
|
38
49
|
compilation.mainTemplate.hooks.requireEnsure.tap('CdnChangePlugin', (source, chunk) => {
|
39
50
|
const chunkMap = this.getCssChunkObject(chunk);
|
51
|
+
|
40
52
|
if (Object.keys(chunkMap).length > 0) {
|
41
53
|
return source.replace('__webpack_require__.p', `window['${this.variableName}']`);
|
42
54
|
}
|
@@ -58,6 +70,8 @@ class CdnChangePlugin {
|
|
58
70
|
});
|
59
71
|
});
|
60
72
|
}
|
73
|
+
|
61
74
|
}
|
75
|
+
|
62
76
|
var _default = CdnChangePlugin;
|
63
77
|
exports.default = _default;
|