@zohodesk/react-cli 0.0.1-exp.169.1 → 0.0.1-exp.175.0

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.
Files changed (36) hide show
  1. package/.eslintrc.js +1 -0
  2. package/{CHANGELOG.md → CHANGELOG-fz.md} +0 -0
  3. package/Changelog.md +1019 -0
  4. package/README.md +17 -936
  5. package/docs/VariableConversion.md +678 -0
  6. package/lib/configs/jest.config.js +8 -10
  7. package/lib/configs/libAlias.js +10 -3
  8. package/lib/configs/resolvers.js +38 -0
  9. package/lib/configs/webpack.dev.config.js +19 -26
  10. package/lib/configs/webpack.docs.config.js +12 -19
  11. package/lib/configs/webpack.impact.config.js +13 -15
  12. package/lib/configs/webpack.prod.config.js +24 -28
  13. package/lib/constants.js +31 -0
  14. package/lib/jest/preProcessors/cssPreprocessor.js +14 -7
  15. package/lib/loaderUtils/getCSSLoaders.js +45 -8
  16. package/lib/pluginUtils/configHtmlWebpackPlugins.js +59 -0
  17. package/lib/pluginUtils/getDevPlugins.js +14 -34
  18. package/lib/pluginUtils/getProdPlugins.js +24 -42
  19. package/lib/postcss-plugins/{ExcludeRTLPlugin.js → ExcludePlugin.js} +1 -1
  20. package/lib/postcss-plugins/hoverActivePlugin.js +51 -27
  21. package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +37 -0
  22. package/lib/postcss-plugins/variableModificationPlugin/index.js +248 -0
  23. package/lib/postcss-plugins/variableModifier.js +244 -0
  24. package/lib/schemas/index.js +50 -10
  25. package/lib/servers/docsServerCore.js +13 -12
  26. package/lib/servers/getCliPath.js +1 -1
  27. package/lib/servers/httpsOptions.js +40 -9
  28. package/lib/servers/nowatchserver.js +12 -11
  29. package/lib/servers/server.js +14 -13
  30. package/lib/utils/getOptions.js +42 -14
  31. package/package.json +5 -34
  32. package/postpublish.js +6 -4
  33. package/templates/docs/css/style.css +1 -1
  34. package/templates/docs/index.html +9 -1
  35. package/cert/Tsicsezwild-22-23.crt +0 -37
  36. package/cert/Tsicsezwild-22-23.key +0 -27
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.libAlias = void 0;
6
+ exports.libAlias = exports.jestModuleNameMapper = void 0;
7
7
  // the reason for alias at the time was code tree shaking
8
8
  // tree shaking was most compactable with ES module system
9
9
  // FIXME: But there is a posiblity when these package does not have lib,
@@ -27,5 +27,12 @@ const libAlias = {
27
27
  '@zohodesk/timetracker/lib': '@zohodesk/timetracker/es',
28
28
  '@zohodesk/variables/lib': '@zohodesk/variables/es',
29
29
  '@zohodesk/virtualizer/lib': '@zohodesk/virtualizer/es'
30
- };
31
- exports.libAlias = libAlias;
30
+ }; // '^@root(.*)$': '<rootDir>/src$1',
31
+ // '^@components(.*)$': '<rootDir>/src/components$1',
32
+
33
+ exports.libAlias = libAlias;
34
+ const jestModuleNameMapper = Object.keys(libAlias).reduce((previousValue, key) => {
35
+ previousValue[`^${key}(.*)$`] = `${libAlias[key]}$1`;
36
+ return previousValue;
37
+ }, {});
38
+ exports.jestModuleNameMapper = jestModuleNameMapper;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.loaderResolver = loaderResolver;
7
+ exports.moduleResolver = moduleResolver;
8
+
9
+ var _constants = require("../constants");
10
+
11
+ var _libAlias = require("./libAlias");
12
+
13
+ function moduleResolver(options) {
14
+ const {
15
+ moduleResolvePath,
16
+ disableES5Transpile
17
+ } = options.app;
18
+ const nodeModulesPath = moduleResolvePath ? require(require.resolve(moduleResolvePath, {
19
+ paths: [options.cwd]
20
+ })).nodeModulesPath : ''; // const {unstableDepsInverse} = options;
21
+
22
+ return {
23
+ modules: [nodeModulesPath, 'node_modules'].filter(Boolean),
24
+ alias: disableES5Transpile ? _libAlias.libAlias : {} // alias: { ...libAlias, ...clientDependenies }
25
+
26
+ };
27
+ }
28
+
29
+ function loaderResolver(options) {
30
+ // const unstableDepsInverse = false;
31
+ const {
32
+ unstableDepsInverse
33
+ } = options;
34
+ return {
35
+ modules: unstableDepsInverse ? ['node_modules', _constants.cliNodemodulesPath] : [_constants.cliNodemodulesPath, 'node_modules'] // alias: libAlias
36
+
37
+ };
38
+ }
@@ -10,24 +10,23 @@ var _pluginUtils = require("../pluginUtils");
10
10
 
11
11
  var _loaderUtils = require("../loaderUtils");
12
12
 
13
- var _libAlias = require("./libAlias");
14
-
15
13
  var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
16
14
 
15
+ var _resolvers = require("./resolvers");
16
+
17
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
18
 
19
- let options = (0, _utils.getOptions)();
20
- let {
21
- unstableDepsInverse,
19
+ const options = (0, _utils.getOptions)();
20
+ const {
22
21
  app: {
23
22
  folder,
24
23
  context,
25
24
  server,
26
25
  outputFolder,
27
- rtlExclude,
28
- combinerMq,
29
- hasRTL,
30
- hoverActive,
26
+ plugins,
27
+ exclude,
28
+ mediaQueryHoverActiveString,
29
+ cssVariableReplacementConfig,
31
30
  cssUniqueness,
32
31
  seperateCssModules,
33
32
  changeRuntimeChunkChar,
@@ -36,19 +35,18 @@ let {
36
35
  cssHashSelectors,
37
36
  classNamePrefix,
38
37
  selectorReplace,
39
- disableES5Transpile,
40
38
  devConsoleExculde,
41
39
  sourcemap,
42
40
  crossorigin
43
41
  }
44
42
  } = options;
45
- let {
43
+ const {
46
44
  disableContextURL
47
45
  } = server;
48
- let appPath = process.cwd();
49
- let contextURL = disableContextURL ? '' : context;
50
- let serverUrl = (0, _utils.getServerURL)(server, 'https');
51
- let output = {
46
+ const appPath = process.cwd();
47
+ const contextURL = disableContextURL ? '' : context;
48
+ const serverUrl = (0, _utils.getServerURL)(server, 'https');
49
+ const output = {
52
50
  path: _path.default.join(appPath, outputFolder),
53
51
  filename: 'js/[name].js',
54
52
  chunkFilename: 'js/[name].js',
@@ -87,9 +85,9 @@ module.exports = {
87
85
  test: /\.js$/,
88
86
  use: (0, _loaderUtils.getDevJsLoaders)(options),
89
87
  include: module => {
90
- let srcPath = _path.default.join(appPath, folder);
88
+ const srcPath = _path.default.join(appPath, folder);
91
89
 
92
- let depsPath = _path.default.join(appPath, 'node_modules', '@zohodesk');
90
+ const depsPath = _path.default.join(appPath, 'node_modules', '@zohodesk');
93
91
 
94
92
  if (module.includes(srcPath) || devConsoleExculde && module.includes(depsPath)) {
95
93
  return true;
@@ -100,10 +98,10 @@ module.exports = {
100
98
  }, seperateCssModules ? {
101
99
  test: /\.css$/,
102
100
  exclude: /\.module\.css$/,
103
- use: (0, _loaderUtils.getCSSLoaders)(hasRTL, rtlExclude, combinerMq, hoverActive, '[local]', false, null)
101
+ use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, cssVariableReplacementConfig, '[local]', false, null)
104
102
  } : null, {
105
103
  test: seperateCssModules ? /\.module\.css$/ : /(\.module)?\.css$/,
106
- use: (0, _loaderUtils.getCSSLoaders)(hasRTL, combinerMq, rtlExclude, hoverActive, null, cssUniqueness, selectorReplace, cssHashSelectors, classNamePrefix)
104
+ use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, cssVariableReplacementConfig, null, cssUniqueness, selectorReplace, cssHashSelectors, classNamePrefix)
107
105
  }, (0, _configsAssetsLoaders.configImageLoader)(nameTemplate), (0, _configsAssetsLoaders.configFontLoader)(nameTemplate), (0, _configsAssetsLoaders.configSVGLoader)(nameTemplate), (0, _configsAssetsLoaders.configVideoLoader)(nameTemplate), (0, _configsAssetsLoaders.configAudioLoader)(nameTemplate), {
108
106
  test: /\.tmpl$/,
109
107
  use: [{
@@ -126,11 +124,6 @@ module.exports = {
126
124
  externals: {
127
125
  ZC: '$ZC'
128
126
  },
129
- resolve: {
130
- modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules'],
131
- alias: disableES5Transpile ? _libAlias.libAlias : {}
132
- },
133
- resolveLoader: {
134
- modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
135
- }
127
+ resolve: (0, _resolvers.moduleResolver)(options),
128
+ resolveLoader: (0, _resolvers.loaderResolver)(options)
136
129
  };
@@ -8,24 +8,22 @@ var _pluginUtils = require("../pluginUtils");
8
8
 
9
9
  var _loaderUtils = require("../loaderUtils");
10
10
 
11
- var _libAlias = require("./libAlias");
12
-
13
11
  var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
14
12
 
13
+ var _resolvers = require("./resolvers");
14
+
15
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
16
 
17
- let options = (0, _utils.getOptions)();
18
- let {
19
- unstableDepsInverse,
17
+ const options = (0, _utils.getOptions)();
18
+ const {
20
19
  docs: {
21
20
  componentFolder,
22
- disableES5Transpile,
23
21
  enableChunkHash,
24
22
  cssUniqueness,
25
- combinerMq,
26
- hasRTL,
27
- hoverActive,
28
- rtlExclude,
23
+ plugins,
24
+ exclude,
25
+ mediaQueryHoverActiveString,
26
+ cssVariableReplacementConfig,
29
27
  cssHashSelectors,
30
28
  classNamePrefix
31
29
  },
@@ -33,7 +31,7 @@ let {
33
31
  folder
34
32
  }
35
33
  } = options;
36
- let appPath = process.cwd();
34
+ const appPath = process.cwd();
37
35
  const nameTemplate = (0, _configsAssetsLoaders.createNameTemplate)(enableChunkHash);
38
36
 
39
37
  module.exports = isSSTest => ({
@@ -75,7 +73,7 @@ module.exports = isSSTest => ({
75
73
  exclude: /node_modules/
76
74
  }, {
77
75
  test: /(\.module)?\.css$/,
78
- use: (0, _loaderUtils.getCSSLoaders)(hasRTL, combinerMq, rtlExclude, hoverActive, false, cssUniqueness, null, cssHashSelectors, classNamePrefix)
76
+ use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, cssVariableReplacementConfig, false, cssUniqueness, null, cssHashSelectors, classNamePrefix)
79
77
  }, (0, _configsAssetsLoaders.configImageLoader)(nameTemplate), (0, _configsAssetsLoaders.configFontLoader)(nameTemplate), (0, _configsAssetsLoaders.configSVGLoader)(nameTemplate), (0, _configsAssetsLoaders.configAudioLoader)(nameTemplate), (0, _configsAssetsLoaders.configVideoLoader)(nameTemplate), {
80
78
  test: /\.html$/,
81
79
  use: {
@@ -104,11 +102,6 @@ module.exports = isSSTest => ({
104
102
  externals: {
105
103
  ZC: '$ZC'
106
104
  },
107
- resolve: {
108
- modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules'],
109
- alias: disableES5Transpile ? _libAlias.libAlias : {}
110
- },
111
- resolveLoader: {
112
- modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
113
- }
105
+ resolve: (0, _resolvers.moduleResolver)(options),
106
+ resolveLoader: (0, _resolvers.loaderResolver)(options)
114
107
  });
@@ -10,17 +10,19 @@ var _getLibraryImactPlugins = _interopRequireDefault(require("../pluginUtils/get
10
10
 
11
11
  var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
12
12
 
13
+ var _resolvers = require("./resolvers");
14
+
13
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
16
 
15
- let options = (0, _utils.getOptions)();
16
- let {
17
+ const options = (0, _utils.getOptions)();
18
+ const {
17
19
  docs: {
18
20
  componentFolder,
19
21
  cssUniqueness,
20
- hasRTL,
21
- rtlExclude,
22
- hoverActive,
23
- combinerMq,
22
+ plugins,
23
+ exclude,
24
+ mediaQueryHoverActiveString,
25
+ cssVariableReplacementConfig,
24
26
  cssHashSelectors,
25
27
  enableChunkHash,
26
28
  classNamePrefix
@@ -29,7 +31,7 @@ let {
29
31
  folder
30
32
  }
31
33
  } = options;
32
- let appPath = process.cwd();
34
+ const appPath = process.cwd();
33
35
  const nameTemplate = (0, _configsAssetsLoaders.createNameTemplate)(enableChunkHash);
34
36
  module.exports = {
35
37
  entry: {
@@ -38,6 +40,7 @@ module.exports = {
38
40
  },
39
41
  devtool: 'none',
40
42
  mode: 'development',
43
+ stats: 'errors-only',
41
44
  output: {
42
45
  path: _path.default.join(appPath, 'build'),
43
46
  filename: 'js/[name].js',
@@ -70,7 +73,7 @@ module.exports = {
70
73
  exclude: /node_modules/
71
74
  }, {
72
75
  test: /(\.module)?\.css$/,
73
- use: (0, _loaderUtils.getCSSLoaders)(hasRTL, rtlExclude, combinerMq, hoverActive, false, cssUniqueness, null, cssHashSelectors, classNamePrefix)
76
+ use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, cssVariableReplacementConfig, false, cssUniqueness, null, cssHashSelectors, classNamePrefix)
74
77
  }, (0, _configsAssetsLoaders.configImageLoader)(nameTemplate), (0, _configsAssetsLoaders.configFontLoader)(nameTemplate), (0, _configsAssetsLoaders.configSVGLoader)(nameTemplate), (0, _configsAssetsLoaders.configAudioLoader)(nameTemplate), (0, _configsAssetsLoaders.configVideoLoader)(nameTemplate), {
75
78
  test: /\.html$/,
76
79
  use: {
@@ -100,11 +103,6 @@ module.exports = {
100
103
  externals: {
101
104
  ZC: '$ZC'
102
105
  },
103
- resolve: {
104
- modules: [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
105
- },
106
- resolveLoader: {
107
- modules: [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
108
- },
109
- stats: 'errors-only'
106
+ resolve: (0, _resolvers.moduleResolver)(options),
107
+ resolveLoader: (0, _resolvers.loaderResolver)(options)
110
108
  };
@@ -10,29 +10,27 @@ var _pluginUtils = require("../pluginUtils");
10
10
 
11
11
  var _loaderUtils = require("../loaderUtils");
12
12
 
13
- var _libAlias = require("./libAlias");
14
-
15
13
  var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
16
14
 
15
+ var _resolvers = require("./resolvers");
16
+
17
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
18
 
19
19
  // import TerserPlugin from 'terser-webpack-plugin';
20
- let options = (0, _utils.getOptions)();
21
- let {
22
- unstableDepsInverse,
20
+ const options = (0, _utils.getOptions)();
21
+ const {
23
22
  app: {
24
23
  folder,
25
24
  context,
26
- enableChunkHash,
27
25
  outputFolder,
28
26
  disableES5Transpile,
29
27
  removeAttribute,
30
28
  enableSMap,
31
29
  server,
32
- combinerMq,
33
- hasRTL,
34
- rtlExclude,
35
- hoverActive,
30
+ plugins,
31
+ exclude,
32
+ mediaQueryHoverActiveString,
33
+ cssVariableReplacementConfig,
36
34
  cssUniqueness,
37
35
  server: {
38
36
  mode
@@ -47,10 +45,13 @@ let {
47
45
  crossorigin
48
46
  }
49
47
  } = options;
50
- let appPath = process.cwd();
51
- let isDevelopment = mode === 'prod' || mode === 'dev' || mode === 'dev-no-warn';
48
+ let {
49
+ enableChunkHash
50
+ } = options.app;
51
+ const appPath = process.cwd();
52
+ const isDevelopment = mode === 'prod' || mode === 'dev' || mode === 'dev-no-warn';
52
53
  enableChunkHash = !isDevelopment && enableChunkHash;
53
- let output = {
54
+ const output = {
54
55
  path: _path.default.resolve(appPath, outputFolder),
55
56
  filename: enableChunkHash ? 'js/[name].[chunkhash:20]_.js' : 'js/[name]_.js',
56
57
  chunkFilename: enableChunkHash ? 'js/[name].[chunkhash:20]_.js' : 'js/[name]_.js',
@@ -63,15 +64,15 @@ if (crossorigin) {
63
64
  }
64
65
 
65
66
  if (isDevelopment) {
66
- let {
67
+ const {
67
68
  disableContextURL
68
69
  } = server;
69
- let contextURL = disableContextURL ? '' : context;
70
- let serverUrl = (0, _utils.getServerURL)(server, 'https');
70
+ const contextURL = disableContextURL ? '' : context;
71
+ const serverUrl = (0, _utils.getServerURL)(server, 'https');
71
72
  output.publicPath = `${[serverUrl, contextURL].filter(a => a).join('/')}/`;
72
73
  }
73
74
 
74
- let shouldRemovePropTypes = !isDevelopment && removePropTypes;
75
+ const shouldRemovePropTypes = !isDevelopment && removePropTypes;
75
76
  module.exports = {
76
77
  entry: (0, _common.getEntries)(options, 'production'),
77
78
  devtool: isDevelopment ? 'cheap-module-source-map' : enableSMap ? 'hidden-source-map' : 'none',
@@ -135,9 +136,9 @@ module.exports = {
135
136
  }].filter(Boolean),
136
137
  // include: path.join(appPath, folder)
137
138
  include: module => {
138
- let srcPath = _path.default.join(appPath, folder);
139
+ const srcPath = _path.default.join(appPath, folder);
139
140
 
140
- let depsPath = _path.default.join(appPath, 'node_modules', '@zohodesk');
141
+ const depsPath = _path.default.join(appPath, 'node_modules', '@zohodesk');
141
142
 
142
143
  if (module.includes(srcPath) || devConsoleExculde && module.includes(depsPath)) {
143
144
  return true;
@@ -148,10 +149,10 @@ module.exports = {
148
149
  }, seperateCssModules ? {
149
150
  test: /\.css$/,
150
151
  exclude: /\.module\.css$/,
151
- use: (0, _loaderUtils.getCSSLoaders)(hasRTL, rtlExclude, hoverActive, combinerMq, '[local]', false, null)
152
+ use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, cssVariableReplacementConfig, mediaQueryHoverActiveString, '[local]', false, null)
152
153
  } : null, {
153
154
  test: seperateCssModules ? /\.module\.css$/ : /\.css$/,
154
- use: (0, _loaderUtils.getCSSLoaders)(hasRTL, combinerMq, rtlExclude, hoverActive, false, cssUniqueness, selectorReplace, cssHashSelectors, classNamePrefix)
155
+ use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, cssVariableReplacementConfig, false, cssUniqueness, selectorReplace, cssHashSelectors, classNamePrefix)
155
156
  }, {
156
157
  test: /\.jpe?g$|\.gif$|\.png$/,
157
158
  use: [{
@@ -212,11 +213,6 @@ module.exports = {
212
213
  externals: {
213
214
  ZC: '$ZC'
214
215
  },
215
- resolve: {
216
- modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules'],
217
- alias: disableES5Transpile ? _libAlias.libAlias : {}
218
- },
219
- resolveLoader: {
220
- modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
221
- }
216
+ resolve: (0, _resolvers.moduleResolver)(options),
217
+ resolveLoader: (0, _resolvers.loaderResolver)(options)
222
218
  };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.cliRootPath = exports.cliNodemodulesPath = exports.appPath = exports.CONFIG_ROOT = exports.BASE_CONFIG_KEY = void 0;
7
+
8
+ var _path = _interopRequireDefault(require("path"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ const BASE_CONFIG_KEY = 'react-cli';
13
+ exports.BASE_CONFIG_KEY = BASE_CONFIG_KEY;
14
+
15
+ const cliRootPath = _path.default.resolve(__dirname, '..');
16
+
17
+ exports.cliRootPath = cliRootPath;
18
+ const CONFIG_ROOT = 'react-cli';
19
+ exports.CONFIG_ROOT = CONFIG_ROOT;
20
+
21
+ const cliNodemodulesPath = _path.default.resolve(cliRootPath, 'node_modules'); // export const babelrcPath = join(cliRootPath, '.babelrc');
22
+
23
+
24
+ exports.cliNodemodulesPath = cliNodemodulesPath;
25
+ const appPath = process.cwd(); // export const appInitialHTMLTemplatePath = path.join(
26
+ // process.cwd(),
27
+ // 'src',
28
+ // 'index.html'
29
+ // );
30
+
31
+ exports.appPath = appPath;
@@ -6,23 +6,30 @@ var _postcssHashClassname = _interopRequireDefault(require("postcss-hash-classna
6
6
 
7
7
  var _fs = _interopRequireDefault(require("fs"));
8
8
 
9
+ var _utils = require("../../utils");
10
+
9
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
12
 
11
13
  let count = 0;
14
+ const options = (0, _utils.getOptions)();
15
+ const {
16
+ classnameFormat
17
+ } = options.test;
12
18
  module.exports = {
13
19
  process: function (src) {
14
20
  count++;
15
- let opts = {
21
+ const opts = {
16
22
  hashType: 'md5',
17
- digestType: 'base32'
23
+ digestType: 'base32',
24
+ maxLength: 6,
25
+ type: '.json',
26
+ classnameFormat: classnameFormat,
27
+ outputName: `jsonFile_test_${count}`
18
28
  };
19
- opts.maxLength = 6;
20
- opts.type = '.json';
21
- opts.outputName = `jsonFile_test_${count}`;
22
- let processor = (0, _postcss.default)([(0, _postcssHashClassname.default)(opts)]);
29
+ const processor = (0, _postcss.default)([(0, _postcssHashClassname.default)(opts)]);
23
30
  processor.process(src).css;
24
31
 
25
- let jsonMap = _fs.default.readFileSync(`jsonFile_test_${count}.json`, 'UTF-8');
32
+ const jsonMap = _fs.default.readFileSync(`jsonFile_test_${count}.json`, 'UTF-8');
26
33
 
27
34
  _fs.default.unlinkSync(`jsonFile_test_${count}.json`);
28
35
 
@@ -13,10 +13,27 @@ var _utils = require("../utils");
13
13
 
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
 
16
- let options = (0, _utils.getOptions)();
17
- let isWin = process.platform === 'win32';
16
+ const fs = require('fs');
18
17
 
19
- let getCSSLoaders = (hasRTL, combinerMq, rtlExclude, hoverActive, classNameBlob, cssUniqueness, selectorReplace, cssHashSelectors, classNamePrefix) => {
18
+ const options = (0, _utils.getOptions)();
19
+ const isWin = process.platform === 'win32';
20
+
21
+ function windowsModification(array) {
22
+ return isWin ? array.map(r => r.replace(/\//g, '\\')) : array;
23
+ }
24
+
25
+ function excludeEmptyCheckPlugin({
26
+ enable,
27
+ ignore,
28
+ plugins
29
+ }) {
30
+ return enable ? ignore.length === 0 ? plugins : [require('../postcss-plugins/ExcludePlugin')({
31
+ ignore,
32
+ plugins
33
+ })] : [];
34
+ }
35
+
36
+ const getCSSLoaders = (plugins, exclude, mediaQueryHoverActiveString, cssVariableReplacementConfig, classNameBlob, cssUniqueness, selectorReplace, cssHashSelectors, classNamePrefix) => {
20
37
  const {
21
38
  devCssFileBountry
22
39
  } = options.app;
@@ -26,8 +43,11 @@ let getCSSLoaders = (hasRTL, combinerMq, rtlExclude, hoverActive, classNameBlob,
26
43
  const {
27
44
  cssSelectorZipPath
28
45
  } = options.impactService;
29
- let rtlExcludeLocal = isWin ? rtlExclude.map(r => r.replace(/\//g, '\\')) : rtlExclude;
30
- let cssLoaderOptions = {
46
+ const rtlExcludeLocal = windowsModification(exclude.rtl);
47
+ const hoverActiveExcludeLocal = windowsModification(exclude.hoverActive);
48
+ const combinerMediaQueryExcludeLocal = windowsModification(exclude.combinerMediaQuery);
49
+ const cssVariableReplacementExcludeLocal = windowsModification(exclude.cssVariableReplacement);
50
+ const cssLoaderOptions = {
31
51
  // importLoaders: hasRTL||hoverActive ? 1 : 0,
32
52
  importLoaders: 1,
33
53
  modules: {},
@@ -40,7 +60,13 @@ let getCSSLoaders = (hasRTL, combinerMq, rtlExclude, hoverActive, classNameBlob,
40
60
  cssLoaderOptions.modules.getLocalIdent = (0, _cssClassNameGenerate.default)(cssUniqueness, cssHashSelectors, classNamePrefix);
41
61
  }
42
62
 
43
- const postcssPlugins = [valueReplacer && require('../postcss-plugins/ValueReplacer')(valueReplacer), selectorReplace && require('postcss-selector-replace')(selectorReplace), hasRTL && require('../postcss-plugins/ExcludeRTLPlugin')({
63
+ const postcssPlugins = [valueReplacer && require('../postcss-plugins/ValueReplacer')(valueReplacer), selectorReplace && require('postcss-selector-replace')(selectorReplace), // ...excludeEmptyCheckPlugin({
64
+ // enable: true,
65
+ // ignore: [],
66
+ // plugins: [require('../postcss-plugins/variablePropertiesCollector').default()]
67
+ // }),
68
+ ...excludeEmptyCheckPlugin({
69
+ enable: plugins.hasRTL,
44
70
  ignore: rtlExcludeLocal,
45
71
  plugins: [require('@zohodesk/postcss-rtl')({
46
72
  addPrefixToSelector: function addPrefixToSelector(selector, prefix) {
@@ -51,8 +77,19 @@ let getCSSLoaders = (hasRTL, combinerMq, rtlExclude, hoverActive, classNameBlob,
51
77
  return `${prefix} ${selector}`; // Make selectors like [dir=rtl] > .selector
52
78
  }
53
79
  })]
54
- }), // require('postcss-import')(),
55
- combinerMq && require('postcss-combine-media-query')(), hoverActive && require('../postcss-plugins/hoverActivePlugin')()].filter(Boolean);
80
+ }), ...excludeEmptyCheckPlugin({
81
+ enable: plugins.combinerMediaQuery,
82
+ ignore: combinerMediaQueryExcludeLocal,
83
+ plugins: [require('postcss-combine-media-query')]
84
+ }), ...excludeEmptyCheckPlugin({
85
+ enable: plugins.hoverActive,
86
+ ignore: hoverActiveExcludeLocal,
87
+ plugins: [require('../postcss-plugins/hoverActivePlugin')(mediaQueryHoverActiveString)]
88
+ }), ...excludeEmptyCheckPlugin({
89
+ enable: plugins.cssVariableReplacement,
90
+ ignore: cssVariableReplacementExcludeLocal,
91
+ plugins: [fs.existsSync(cssVariableReplacementConfig) && require('../postcss-plugins/variableModificationPlugin/index')(cssVariableReplacementConfig)]
92
+ })].filter(Boolean);
56
93
  return [cssSelectorZipPath && {
57
94
  loader: require.resolve('../loaders/selectorMappingLoader')
58
95
  }, {
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configHtmlWebpackPlugins = configHtmlWebpackPlugins;
7
+
8
+ var _path = _interopRequireDefault(require("path"));
9
+
10
+ var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin"));
11
+
12
+ var _htmlWebpackInjectAttributesPlugin = _interopRequireDefault(require("html-webpack-inject-attributes-plugin"));
13
+
14
+ var _common = require("../common");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ const defaultHTMLMiniFyOption = {
19
+ collapseWhitespace: true,
20
+ minifyCSS: true,
21
+ minifyJS: true,
22
+ keepClosingSlash: true,
23
+ removeComments: false,
24
+ removeRedundantAttributes: true,
25
+ removeScriptTypeAttributes: true,
26
+ removeStyleLinkTypeAttributes: true,
27
+ useShortDoctype: true
28
+ };
29
+
30
+ function configHtmlWebpackPlugins(plugins, {
31
+ enableChunkHash = false,
32
+ folder,
33
+ inject,
34
+ crossorigin,
35
+ hasEFC,
36
+ minify: minifyHtmlOptions = false
37
+ }) {
38
+ const optionsHtmlWebpack = {
39
+ chunksSortMode: 'none',
40
+ filename: enableChunkHash ? 'index.[templatehash:20].html' : 'index.html',
41
+ template: _path.default.join(process.cwd(), folder, 'index.html'),
42
+ minify: minifyHtmlOptions === true ? defaultHTMLMiniFyOption : minifyHtmlOptions === null ? false : minifyHtmlOptions,
43
+ // : typeof minifyHtmlOptions === 'object'
44
+ // ? minifyHtmlOptions
45
+ // : minifyHtmlOptions,,
46
+ templateParameters: _common.templateParameters,
47
+ scriptLoading: 'defer',
48
+ inject: inject
49
+ };
50
+
51
+ if (hasEFC) {
52
+ optionsHtmlWebpack.excludeChunks = ['efc', 'widget'];
53
+ }
54
+
55
+ plugins.push(new _htmlWebpackPlugin.default(optionsHtmlWebpack));
56
+ crossorigin && plugins.push(new _htmlWebpackInjectAttributesPlugin.default({
57
+ crossorigin: 'anonymous'
58
+ }));
59
+ }