@zohodesk/react-cli 0.0.1-test.148.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (174) hide show
  1. package/.eslintignore +7 -7
  2. package/.eslintrc.js +180 -183
  3. package/.prettierrc +6 -0
  4. package/{CHANGELOG.md → CHANGELOG-fz.md} +0 -0
  5. package/Changelog.md +1019 -0
  6. package/README.md +1152 -678
  7. package/bin/cli.js +483 -392
  8. package/docs/CustomChunks.md +26 -0
  9. package/docs/DevServerPort.md +39 -0
  10. package/docs/DevStart.md +18 -0
  11. package/docs/HoverActive.md +12 -0
  12. package/docs/InstallNode.md +28 -0
  13. package/docs/SelectorWeight.md +6 -0
  14. package/docs/TODOS.md +10 -0
  15. package/docs/ValueReplacer.md +60 -0
  16. package/docs/VariableConversion.md +724 -0
  17. package/docs/warnings_while_install.txt +35 -0
  18. package/files/eslintrc.js +62 -62
  19. package/files/prettierrc.js +3 -3
  20. package/lib/common/index.js +6 -6
  21. package/lib/common/splitChunks.js +60 -12
  22. package/lib/common/sslcertUpdater.js +59 -0
  23. package/lib/common/testPattern.js +69 -0
  24. package/lib/common/valueReplacer.js +55 -0
  25. package/lib/configs/jest.config.js +18 -8
  26. package/lib/configs/libAlias.js +38 -0
  27. package/lib/configs/resolvers.js +40 -0
  28. package/lib/configs/webpack.css.umd.config.js +4 -4
  29. package/lib/configs/webpack.dev.config.js +59 -54
  30. package/lib/configs/webpack.docs.config.js +56 -53
  31. package/lib/configs/webpack.impact.config.js +54 -50
  32. package/lib/configs/webpack.prod.config.js +72 -47
  33. package/lib/constants.js +31 -0
  34. package/lib/jest/preProcessors/cssPreprocessor.js +16 -7
  35. package/lib/loaderUtils/configsAssetsLoaders.js +117 -0
  36. package/lib/loaderUtils/getCSSLoaders.js +89 -21
  37. package/lib/loaderUtils/index.js +4 -4
  38. package/lib/loaderUtils/windowsModification.js +11 -0
  39. package/lib/loaders/fileBountryLoader.js +17 -0
  40. package/lib/loaders/scriptInstrumentLoader.js +2 -2
  41. package/lib/loaders/selectorMappingLoader.js +75 -0
  42. package/lib/loaders/workerLoader.js +9 -9
  43. package/lib/pluginUtils/configHtmlWebpackPlugins.js +59 -0
  44. package/lib/pluginUtils/getDevPlugins.js +68 -45
  45. package/lib/pluginUtils/getDocsPlugins.js +6 -8
  46. package/lib/pluginUtils/getLibraryImactPlugins.js +23 -0
  47. package/lib/pluginUtils/getProdPlugins.js +72 -58
  48. package/lib/pluginUtils/index.js +12 -12
  49. package/lib/plugins/CdnChangePlugin.js +16 -2
  50. package/lib/plugins/EFCPlugin.js +52 -20
  51. package/lib/plugins/EFCPlugin.md +6 -0
  52. package/lib/plugins/EFCTemplatePlugin.js +151 -0
  53. package/lib/plugins/I18NInjectIntoIndexPlugin.js +4 -4
  54. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
  55. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
  56. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +8 -8
  57. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -86
  58. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  59. package/lib/plugins/I18nSplitPlugin/index.js +57 -57
  60. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +2 -2
  61. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +1 -1
  62. package/lib/plugins/ManifestPlugin.js +8 -0
  63. package/lib/plugins/RequireVariablePublicPlugin.js +30 -0
  64. package/lib/plugins/ResourceHintsPlugin.js +17 -17
  65. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
  66. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -0
  67. package/lib/plugins/SelectorPlugin.js +97 -0
  68. package/lib/plugins/ServiceWorkerPlugin.js +13 -9
  69. package/lib/plugins/SourceMapHookPlugin.js +9 -3
  70. package/lib/plugins/TPHashMappingPlugin.js +4 -4
  71. package/lib/plugins/VariableConversionCollector.js +352 -0
  72. package/lib/plugins/composeCommonPlugin.js +30 -0
  73. package/lib/plugins/index.js +36 -36
  74. package/lib/plugins/libraryImpactPlugin.js +14 -2
  75. package/lib/postcss-plugins/{ExcludeRTLPlugin.js → ExcludePlugin.js} +1 -1
  76. package/lib/postcss-plugins/RTLSplitPlugin.js +13 -13
  77. package/lib/postcss-plugins/ValueReplacer.js +46 -0
  78. package/lib/postcss-plugins/__test__/hoverActivePlugin.spec.js +22 -0
  79. package/lib/postcss-plugins/__test__/test1Input.css +39 -0
  80. package/lib/postcss-plugins/__test__/test1Output.css +39 -0
  81. package/lib/postcss-plugins/hoverActivePlugin.js +389 -0
  82. package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +60 -0
  83. package/lib/postcss-plugins/variableModificationPlugin/index.js +307 -0
  84. package/lib/postcss-plugins/variableModifier.js +244 -0
  85. package/lib/schemas/index.js +165 -11
  86. package/lib/servers/devBuild.js +102 -0
  87. package/lib/servers/docsServerCore.js +16 -18
  88. package/lib/servers/getCliPath.js +28 -0
  89. package/lib/servers/httpsOptions.js +49 -0
  90. package/lib/servers/nowatchserver.js +206 -0
  91. package/lib/servers/server.js +114 -82
  92. package/lib/sh/pre-commit.sh +34 -34
  93. package/lib/sh/reportPublish.sh +45 -45
  94. package/lib/templates/linterConstant.js +1 -1
  95. package/lib/utils/buildstats.html +148 -148
  96. package/lib/utils/cssClassNameGenerate.js +9 -2
  97. package/lib/utils/cssURLReplacer.js +30 -43
  98. package/lib/utils/getCurrentBranch.js +1 -1
  99. package/lib/utils/getDependenciesImpactList.js +14 -12
  100. package/lib/utils/getFileType.js +49 -0
  101. package/lib/utils/getOptions.js +118 -10
  102. package/lib/utils/index.js +44 -20
  103. package/lib/utils/jsonHelper.js +12 -3
  104. package/lib/utils/reinstallDependencies.js +1 -1
  105. package/lib/utils/repoClone.js +16 -4
  106. package/lib/utils/resultSchema.json +73 -73
  107. package/lib/utils/rtl.js +19 -2
  108. package/lib/utils/useExitCleanup.js +55 -0
  109. package/npm8.md +9 -0
  110. package/package.json +121 -142
  111. package/postpublish.js +8 -0
  112. package/result.json +1 -0
  113. package/templates/app/.eslintrc.js +140 -140
  114. package/templates/app/README.md +12 -12
  115. package/templates/app/app/index.html +24 -24
  116. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  117. package/templates/app/app/properties/i18nkeys.json +3 -3
  118. package/templates/app/docs/all.html +69 -69
  119. package/templates/app/mockapi/index.js +18 -18
  120. package/templates/app/package.json +37 -37
  121. package/templates/app/src/actions/SampleActions/index.js +37 -37
  122. package/templates/app/src/actions/index.js +65 -65
  123. package/templates/app/src/appUrls.js +19 -19
  124. package/templates/app/src/components/Alert/Alert.js +134 -134
  125. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  126. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  127. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  128. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  129. package/templates/app/src/components/Sample/SampleList.js +61 -61
  130. package/templates/app/src/components/Slider/Slider.css +41 -41
  131. package/templates/app/src/components/Slider/Slider.js +55 -55
  132. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  133. package/templates/app/src/containers/AppContainer/index.js +96 -96
  134. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  135. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  136. package/templates/app/src/containers/DevTools/index.js +10 -10
  137. package/templates/app/src/containers/Header/index.js +67 -67
  138. package/templates/app/src/containers/Header/index.module.css +43 -43
  139. package/templates/app/src/containers/Redirect/index.js +63 -63
  140. package/templates/app/src/containers/Redirector/index.js +47 -47
  141. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  142. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  143. package/templates/app/src/historyChange.js +5 -5
  144. package/templates/app/src/index.html +10 -10
  145. package/templates/app/src/index.js +24 -24
  146. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  147. package/templates/app/src/reducers/alertData.js +11 -11
  148. package/templates/app/src/reducers/index.js +6 -6
  149. package/templates/app/src/reducers/samples.js +19 -19
  150. package/templates/app/src/store/configureStore.dev.js +51 -51
  151. package/templates/app/src/store/configureStore.js +5 -5
  152. package/templates/app/src/store/configureStore.prod.js +26 -26
  153. package/templates/app/src/util/Common.js +5 -5
  154. package/templates/app/src/util/RequestAPI.js +132 -132
  155. package/templates/docs/all.html +249 -249
  156. package/templates/docs/component.html +178 -178
  157. package/templates/docs/components.html +221 -221
  158. package/templates/docs/css/b.min.css +6 -6
  159. package/templates/docs/css/component.css +42 -42
  160. package/templates/docs/css/componentTest.css +6 -6
  161. package/templates/docs/css/hopscotch.css +585 -585
  162. package/templates/docs/css/style.css +1022 -1022
  163. package/templates/docs/impactReportTemplate.html +154 -154
  164. package/templates/docs/index.html +1501 -1493
  165. package/templates/docs/js/active-line.js +72 -72
  166. package/templates/docs/js/b.min.js +7 -7
  167. package/templates/docs/js/codemirror.js +9680 -9680
  168. package/templates/docs/js/designTokens.js +334 -334
  169. package/templates/docs/js/j.min.js +4 -4
  170. package/templates/docs/js/javascript.js +874 -874
  171. package/templates/docs/js/matchbrackets.js +145 -145
  172. package/unittest/index.html +37 -0
  173. package/cert/cert.pem +0 -105
  174. package/cert/key.pem +0 -30
@@ -10,46 +10,65 @@ var _pluginUtils = require("../pluginUtils");
10
10
 
11
11
  var _loaderUtils = require("../loaderUtils");
12
12
 
13
+ var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
14
+
15
+ var _resolvers = require("./resolvers");
16
+
13
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
18
 
15
- let options = (0, _utils.getOptions)();
16
- let {
19
+ const options = (0, _utils.getOptions)();
20
+ const {
17
21
  app: {
18
22
  folder,
19
23
  context,
20
24
  server,
21
25
  outputFolder,
22
- rtlExclude,
23
- hasRTL,
26
+ plugins,
27
+ exclude,
28
+ mediaQueryHoverActiveString,
29
+ cssVariableReplacementConfig,
30
+ selectorWeightConfig,
24
31
  cssUniqueness,
25
32
  seperateCssModules,
26
33
  changeRuntimeChunkChar,
34
+ // we are going to use this for fonts file name collide in issue in devmode
35
+ enableChunkHash,
27
36
  cssHashSelectors,
28
37
  classNamePrefix,
29
38
  selectorReplace,
30
- disableES5Transpile,
31
- devConsoleExculde
39
+ devConsoleExculde,
40
+ sourcemap,
41
+ crossorigin
32
42
  }
33
43
  } = options;
34
- let {
44
+ const {
35
45
  disableContextURL
36
46
  } = server;
37
- let appPath = process.cwd();
38
- let contextURL = disableContextURL ? '' : context;
39
- let serverUrl = (0, _utils.getServerURL)(server, 'https');
40
- let output = {
47
+ const appPath = process.cwd();
48
+ const contextURL = disableContextURL ? '' : context;
49
+ const serverUrl = (0, _utils.getServerURL)(server, 'https');
50
+ const output = {
41
51
  path: _path.default.join(appPath, outputFolder),
42
52
  filename: 'js/[name].js',
43
53
  chunkFilename: 'js/[name].js',
44
54
  publicPath: `${[serverUrl, contextURL].filter(a => a).join('/')}/`,
45
55
  jsonpFunction: `${context}Jsonp`
46
56
  };
57
+ const nameTemplate = (0, _configsAssetsLoaders.createNameTemplate)(enableChunkHash);
58
+
59
+ if (crossorigin) {
60
+ output.crossOriginLoading = 'anonymous';
61
+ }
62
+
47
63
  module.exports = {
48
64
  entry: (0, _common.getEntries)(options, 'dev'),
49
- devtool: 'cheap-eval-source-map',
65
+ devtool: sourcemap,
50
66
  mode: 'development',
67
+ // watchOptions: {
68
+ // ignored: /node_modules.(?!@zohodesk)/
69
+ // },
51
70
  output,
52
- stats: {
71
+ stats: options.app.disableWatch ? 'errors-only' : {
53
72
  children: false
54
73
  },
55
74
  optimization: {
@@ -67,9 +86,9 @@ module.exports = {
67
86
  test: /\.js$/,
68
87
  use: (0, _loaderUtils.getDevJsLoaders)(options),
69
88
  include: module => {
70
- let srcPath = _path.default.join(appPath, folder);
89
+ const srcPath = _path.default.join(appPath, folder);
71
90
 
72
- let depsPath = _path.default.join(appPath, 'node_modules', '@zohodesk');
91
+ const depsPath = _path.default.join(appPath, 'node_modules', '@zohodesk');
73
92
 
74
93
  if (module.includes(srcPath) || devConsoleExculde && module.includes(depsPath)) {
75
94
  return true;
@@ -80,23 +99,31 @@ module.exports = {
80
99
  }, seperateCssModules ? {
81
100
  test: /\.css$/,
82
101
  exclude: /\.module\.css$/,
83
- use: (0, _loaderUtils.getCSSLoaders)(hasRTL, rtlExclude, '[local]', false, null)
102
+ use: (0, _loaderUtils.getCSSLoaders)({
103
+ plugins,
104
+ exclude,
105
+ mediaQueryHoverActiveString,
106
+ cssVariableReplacementConfig,
107
+ selectorWeightConfig,
108
+ classNameBlob: '[local]',
109
+ cssUniqueness: false,
110
+ selectorReplace: null
111
+ })
84
112
  } : null, {
85
113
  test: seperateCssModules ? /\.module\.css$/ : /(\.module)?\.css$/,
86
- use: (0, _loaderUtils.getCSSLoaders)(hasRTL, rtlExclude, null, cssUniqueness, selectorReplace, cssHashSelectors, classNamePrefix)
87
- }, {
88
- test: /\.jpe?g$|\.gif$|\.png$/,
89
- use: ['url-loader?limit=1000&name=./images/[name].[ext]']
90
- }, {
91
- test: /\.woff2|\.woff$|\.ttf$|\.eot$/,
92
- use: ['url-loader?limit=1000&name=./fonts/[name].[ext]']
93
- }, {
94
- test: /\.svg$/,
95
- use: ['url-loader?limit=1&name=./fonts/[name].[ext]']
96
- }, {
97
- test: /\.ogg$/,
98
- use: ['file-loader?name=./fonts/[name].[ext]']
99
- }, {
114
+ use: (0, _loaderUtils.getCSSLoaders)({
115
+ plugins,
116
+ exclude,
117
+ mediaQueryHoverActiveString,
118
+ cssVariableReplacementConfig,
119
+ selectorWeightConfig,
120
+ classNameBlob: null,
121
+ cssUniqueness,
122
+ selectorReplace,
123
+ cssHashSelectors,
124
+ classNamePrefix
125
+ })
126
+ }, (0, _configsAssetsLoaders.configImageLoader)(nameTemplate), (0, _configsAssetsLoaders.configFontLoader)(nameTemplate), (0, _configsAssetsLoaders.configSVGLoader)(nameTemplate), (0, _configsAssetsLoaders.configVideoLoader)(nameTemplate), (0, _configsAssetsLoaders.configAudioLoader)(nameTemplate), {
100
127
  test: /\.tmpl$/,
101
128
  use: [{
102
129
  loader: 'html-loader',
@@ -118,28 +145,6 @@ module.exports = {
118
145
  externals: {
119
146
  ZC: '$ZC'
120
147
  },
121
- resolve: {
122
- modules: [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules'],
123
- alias: disableES5Transpile ? {
124
- '@zohodesk/components/lib': '@zohodesk/components/es',
125
- '@zohodesk/dot/lib': '@zohodesk/dot/es',
126
- '@zohodesk/i18n/lib': '@zohodesk/i18n/es',
127
- '@zohodesk/icons/lib': '@zohodesk/icons/es',
128
- '@zohodesk/normalizer/lib': '@zohodesk/normalizer/es',
129
- '@zohodesk/perf-components/lib': '@zohodesk/perf-components/es',
130
- '@zohodesk/perf-middleware/lib': '@zohodesk/perf-middleware/es',
131
- '@zohodesk/permissions/lib': '@zohodesk/permissions/es',
132
- '@zohodesk/platform-middleware/lib': '@zohodesk/platform-middleware/es',
133
- '@zohodesk/react-dnd/lib': '@zohodesk/react-dnd/es',
134
- '@zohodesk/router-middleware/lib': '@zohodesk/router-middleware/es',
135
- '@zohodesk/storage/lib': '@zohodesk/storage/es',
136
- '@zohodesk/svg/lib': '@zohodesk/svg/es',
137
- '@zohodesk/timetracker/lib': '@zohodesk/timetracker/es',
138
- '@zohodesk/variables/lib': '@zohodesk/variables/es',
139
- '@zohodesk/virtualizer/lib': '@zohodesk/virtualizer/es'
140
- } : {}
141
- },
142
- resolveLoader: {
143
- modules: [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
144
- }
148
+ resolve: (0, _resolvers.moduleResolver)(options),
149
+ resolveLoader: (0, _resolvers.loaderResolver)(options)
145
150
  };
@@ -8,15 +8,23 @@ var _pluginUtils = require("../pluginUtils");
8
8
 
9
9
  var _loaderUtils = require("../loaderUtils");
10
10
 
11
+ var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
12
+
13
+ var _resolvers = require("./resolvers");
14
+
11
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
16
 
13
- let options = (0, _utils.getOptions)();
14
- let {
17
+ const options = (0, _utils.getOptions)();
18
+ const {
15
19
  docs: {
16
20
  componentFolder,
21
+ enableChunkHash,
17
22
  cssUniqueness,
18
- hasRTL,
19
- rtlExclude,
23
+ plugins,
24
+ exclude,
25
+ mediaQueryHoverActiveString,
26
+ cssVariableReplacementConfig,
27
+ selectorWeightConfig,
20
28
  cssHashSelectors,
21
29
  classNamePrefix
22
30
  },
@@ -24,93 +32,88 @@ let {
24
32
  folder
25
33
  }
26
34
  } = options;
27
- let appPath = process.cwd();
35
+ const appPath = process.cwd();
36
+ const nameTemplate = (0, _configsAssetsLoaders.createNameTemplate)(enableChunkHash);
28
37
 
29
38
  module.exports = isSSTest => ({
30
39
  entry: {
31
- main: [_path.default.resolve(__dirname, "..", "hooks", "docsProptypeHook.js"), _path.default.join(appPath, componentFolder, "index.js")],
32
- vendor: ["react", "react-dom", "redux", "react-redux"]
40
+ main: [_path.default.resolve(__dirname, '..', 'hooks', 'docsProptypeHook.js'), _path.default.join(appPath, componentFolder, 'index.js')],
41
+ vendor: ['react', 'react-dom', 'redux', 'react-redux']
33
42
  },
34
- devtool: "none",
35
- mode: "development",
43
+ devtool: 'none',
44
+ mode: 'development',
36
45
  output: {
37
- path: _path.default.join(appPath, "build"),
38
- filename: "js/[name].js",
39
- publicPath: "/docs/",
40
- library: "Component",
41
- libraryTarget: "umd"
46
+ path: _path.default.join(appPath, 'build'),
47
+ filename: 'js/[name].js',
48
+ publicPath: '/docs/',
49
+ library: 'Component',
50
+ libraryTarget: 'umd'
42
51
  },
43
52
  plugins: (0, _pluginUtils.getDocsPlugins)(isSSTest, options),
44
53
  module: {
45
54
  rules: [{
46
55
  test: /\.js$/,
47
56
  use: [{
48
- loader: "babel-loader",
57
+ loader: 'babel-loader',
49
58
  options: {
50
- presets: [[require.resolve("@babel/preset-env"), {
59
+ presets: [[require.resolve('@babel/preset-env'), {
51
60
  modules: false
52
- }], require.resolve("@babel/preset-react")],
53
- plugins: [[require.resolve("@babel/plugin-transform-runtime"), {
61
+ }], require.resolve('@babel/preset-react')],
62
+ plugins: [[require.resolve('@babel/plugin-transform-runtime'), {
54
63
  helpers: true,
55
64
  regenerator: false
56
- }], require.resolve("@babel/plugin-syntax-dynamic-import"), require.resolve("@babel/plugin-syntax-object-rest-spread")],
65
+ }], require.resolve('@babel/plugin-syntax-dynamic-import'), require.resolve('@babel/plugin-syntax-object-rest-spread')],
57
66
  cacheDirectory: true
58
67
  }
59
68
  }],
60
69
  include: _path.default.join(appPath, folder)
61
70
  }, {
62
71
  test: /\.docs\.js$/,
63
- use: require.resolve("../loaders/docsLoader.js"),
72
+ use: require.resolve('../loaders/docsLoader.js'),
64
73
  include: _path.default.join(appPath, folder),
65
74
  exclude: /node_modules/
66
75
  }, {
67
76
  test: /(\.module)?\.css$/,
68
- use: (0, _loaderUtils.getCSSLoaders)(hasRTL, rtlExclude, false, cssUniqueness, null, cssHashSelectors, classNamePrefix)
69
- }, {
70
- test: /\.jpe?g$|\.gif$|\.png$/,
71
- use: ["url-loader?limit=1000&name=./images/[name].[ext]"]
72
- }, {
73
- test: /\.woff2|\.woff$|\.ttf$|\.eot$/,
74
- use: ["url-loader?limit=1000&name=./fonts/[name].[ext]"]
75
- }, {
76
- test: /\.svg$/,
77
- use: ["url-loader?limit=1&name=./fonts/[name].[ext]"]
78
- }, {
77
+ use: (0, _loaderUtils.getCSSLoaders)({
78
+ plugins,
79
+ exclude,
80
+ mediaQueryHoverActiveString,
81
+ cssVariableReplacementConfig,
82
+ selectorWeightConfig,
83
+ classNameBlob: false,
84
+ cssUniqueness,
85
+ selectorReplace: null,
86
+ cssHashSelectors,
87
+ classNamePrefix
88
+ })
89
+ }, (0, _configsAssetsLoaders.configImageLoader)(nameTemplate), (0, _configsAssetsLoaders.configFontLoader)(nameTemplate), (0, _configsAssetsLoaders.configSVGLoader)(nameTemplate), (0, _configsAssetsLoaders.configAudioLoader)(nameTemplate), (0, _configsAssetsLoaders.configVideoLoader)(nameTemplate), {
79
90
  test: /\.html$/,
80
91
  use: {
81
- loader: "html-loader",
92
+ loader: 'html-loader',
82
93
  options: {
83
- attrs: [":data-src"],
84
- interpolate: "require"
94
+ attrs: [':data-src'],
95
+ interpolate: 'require'
85
96
  }
86
97
  }
87
- }, {
88
- test: /\.ogg$/,
89
- use: ["file-loader?name=./fonts/[name].[ext]"]
90
98
  }, {
91
99
  test: /\.tmpl$/,
92
100
  use: [{
93
- loader: "html-loader",
101
+ loader: 'html-loader',
94
102
  options: {
95
- interpolate: "require",
96
- ignoreCustomFragments: [/\{\{.*?}}/, /\$\{.*?}/],
97
- minimize: true,
98
- removeComments: true,
99
- collapseWhitespace: false,
100
- removeAttributeQuotes: false,
101
- minifyCSS: false,
102
- minifyJS: false
103
+ minimize: {
104
+ removeComments: true,
105
+ collapseWhitespace: false,
106
+ removeAttributeQuotes: false,
107
+ minifyCSS: false,
108
+ minifyJS: false
109
+ }
103
110
  }
104
111
  }]
105
112
  }]
106
113
  },
107
114
  externals: {
108
- ZC: "$ZC"
115
+ ZC: '$ZC'
109
116
  },
110
- resolve: {
111
- modules: [_path.default.resolve(__dirname, "..", "..", "node_modules"), "node_modules"]
112
- },
113
- resolveLoader: {
114
- modules: [_path.default.resolve(__dirname, "..", "..", "node_modules"), "node_modules"]
115
- }
117
+ resolve: (0, _resolvers.moduleResolver)(options),
118
+ resolveLoader: (0, _resolvers.loaderResolver)(options)
116
119
  });
@@ -4,94 +4,103 @@ var _path = _interopRequireDefault(require("path"));
4
4
 
5
5
  var _utils = require("../utils");
6
6
 
7
- var _pluginUtils = require("../pluginUtils");
8
-
9
7
  var _loaderUtils = require("../loaderUtils");
10
8
 
9
+ var _getLibraryImactPlugins = _interopRequireDefault(require("../pluginUtils/getLibraryImactPlugins"));
10
+
11
+ var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
12
+
13
+ var _resolvers = require("./resolvers");
14
+
11
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
16
 
13
- let options = (0, _utils.getOptions)();
14
- let {
17
+ const options = (0, _utils.getOptions)();
18
+ const {
15
19
  docs: {
16
20
  componentFolder,
17
21
  cssUniqueness,
18
- hasRTL,
19
- rtlExclude,
22
+ plugins,
23
+ exclude,
24
+ mediaQueryHoverActiveString,
25
+ cssVariableReplacementConfig,
26
+ selectorWeightConfig,
20
27
  cssHashSelectors,
28
+ enableChunkHash,
21
29
  classNamePrefix
22
30
  },
23
31
  app: {
24
32
  folder
25
33
  }
26
34
  } = options;
27
- let appPath = process.cwd();
35
+ const appPath = process.cwd();
36
+ const nameTemplate = (0, _configsAssetsLoaders.createNameTemplate)(enableChunkHash);
28
37
  module.exports = {
29
38
  entry: {
30
- main: [_path.default.resolve(__dirname, "..", "hooks", "docsProptypeHook.js"), _path.default.join(appPath, componentFolder, "index.js")],
31
- vendor: ["react", "react-dom", "redux", "react-redux"]
39
+ main: [_path.default.resolve(__dirname, '..', 'hooks', 'docsProptypeHook.js'), _path.default.join(appPath, componentFolder, 'index.js')],
40
+ vendor: ['react', 'react-dom', 'redux', 'react-redux']
32
41
  },
33
- devtool: "none",
34
- mode: "development",
42
+ devtool: 'none',
43
+ mode: 'development',
44
+ stats: 'errors-only',
35
45
  output: {
36
- path: _path.default.join(appPath, "build"),
37
- filename: "js/[name].js",
38
- publicPath: "/docs/",
39
- library: "Component",
40
- libraryTarget: "umd"
46
+ path: _path.default.join(appPath, 'build'),
47
+ filename: 'js/[name].js',
48
+ publicPath: '/docs/',
49
+ library: 'Component',
50
+ libraryTarget: 'umd'
41
51
  },
42
- plugins: (0, _pluginUtils.getDocsPlugins)(false, options),
52
+ plugins: (0, _getLibraryImactPlugins.default)(options),
43
53
  module: {
44
54
  rules: [{
45
55
  test: /\.js$/,
46
56
  use: [{
47
- loader: "babel-loader",
57
+ loader: 'babel-loader',
48
58
  options: {
49
- presets: [[require.resolve("@babel/preset-env"), {
59
+ presets: [[require.resolve('@babel/preset-env'), {
50
60
  modules: false
51
- }], require.resolve("@babel/preset-react")],
52
- plugins: [[require.resolve("@babel/plugin-transform-runtime"), {
61
+ }], require.resolve('@babel/preset-react')],
62
+ plugins: [[require.resolve('@babel/plugin-transform-runtime'), {
53
63
  helpers: true,
54
64
  regenerator: false
55
- }], require.resolve("@babel/plugin-syntax-dynamic-import"), require.resolve("@babel/plugin-syntax-object-rest-spread")],
65
+ }], require.resolve('@babel/plugin-syntax-dynamic-import'), require.resolve('@babel/plugin-syntax-object-rest-spread')],
56
66
  cacheDirectory: true
57
67
  }
58
68
  }],
59
69
  include: _path.default.join(appPath, folder)
60
70
  }, {
61
71
  test: /\.docs\.js$/,
62
- use: require.resolve("../loaders/docsLoader.js"),
72
+ use: require.resolve('../loaders/docsLoader.js'),
63
73
  include: _path.default.join(appPath, folder),
64
74
  exclude: /node_modules/
65
75
  }, {
66
76
  test: /(\.module)?\.css$/,
67
- use: (0, _loaderUtils.getCSSLoaders)(hasRTL, rtlExclude, false, cssUniqueness, null, cssHashSelectors, classNamePrefix)
68
- }, {
69
- test: /\.jpe?g$|\.gif$|\.png$/,
70
- use: ["url-loader?limit=1000&name=./images/[name].[ext]"]
71
- }, {
72
- test: /\.woff2|\.woff$|\.ttf$|\.eot$/,
73
- use: ["url-loader?limit=1000&name=./fonts/[name].[ext]"]
74
- }, {
75
- test: /\.svg$/,
76
- use: ["url-loader?limit=1&name=./fonts/[name].[ext]"]
77
- }, {
77
+ use: (0, _loaderUtils.getCSSLoaders)({
78
+ plugins,
79
+ exclude,
80
+ mediaQueryHoverActiveString,
81
+ cssVariableReplacementConfig,
82
+ selectorWeightConfig,
83
+ classNameBlob: false,
84
+ cssUniqueness,
85
+ selectorReplace: null,
86
+ cssHashSelectors,
87
+ classNamePrefix
88
+ })
89
+ }, (0, _configsAssetsLoaders.configImageLoader)(nameTemplate), (0, _configsAssetsLoaders.configFontLoader)(nameTemplate), (0, _configsAssetsLoaders.configSVGLoader)(nameTemplate), (0, _configsAssetsLoaders.configAudioLoader)(nameTemplate), (0, _configsAssetsLoaders.configVideoLoader)(nameTemplate), {
78
90
  test: /\.html$/,
79
91
  use: {
80
- loader: "html-loader",
92
+ loader: 'html-loader',
81
93
  options: {
82
- attrs: [":data-src"],
83
- interpolate: "require"
94
+ attrs: [':data-src'],
95
+ interpolate: 'require'
84
96
  }
85
97
  }
86
- }, {
87
- test: /\.ogg$/,
88
- use: ["file-loader?name=./fonts/[name].[ext]"]
89
98
  }, {
90
99
  test: /\.tmpl$/,
91
100
  use: [{
92
- loader: "html-loader",
101
+ loader: 'html-loader',
93
102
  options: {
94
- interpolate: "require",
103
+ interpolate: 'require',
95
104
  ignoreCustomFragments: [/\{\{.*?}}/, /\$\{.*?}/],
96
105
  minimize: true,
97
106
  removeComments: true,
@@ -104,13 +113,8 @@ module.exports = {
104
113
  }]
105
114
  },
106
115
  externals: {
107
- ZC: "$ZC"
108
- },
109
- resolve: {
110
- modules: [_path.default.resolve(__dirname, "..", "..", "node_modules"), "node_modules"]
111
- },
112
- resolveLoader: {
113
- modules: [_path.default.resolve(__dirname, "..", "..", "node_modules"), "node_modules"]
116
+ ZC: '$ZC'
114
117
  },
115
- stats: 'errors-only'
118
+ resolve: (0, _resolvers.moduleResolver)(options),
119
+ resolveLoader: (0, _resolvers.loaderResolver)(options)
116
120
  };