@zohodesk/react-cli 0.0.1-test.148.2 → 1.0.0-exp.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) 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 +1161 -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/getEntries.js +9 -6
  21. package/lib/common/index.js +6 -6
  22. package/lib/common/splitChunks.js +60 -12
  23. package/lib/common/sslcertUpdater.js +59 -0
  24. package/lib/common/testPattern.js +69 -0
  25. package/lib/common/valueReplacer.js +55 -0
  26. package/lib/configs/jest.config.js +18 -8
  27. package/lib/configs/libAlias.js +38 -0
  28. package/lib/configs/resolvers.js +40 -0
  29. package/lib/configs/webpack.css.umd.config.js +4 -4
  30. package/lib/configs/webpack.dev.config.js +59 -54
  31. package/lib/configs/webpack.docs.config.js +74 -59
  32. package/lib/configs/webpack.docs1.config.js +122 -0
  33. package/lib/configs/webpack.impact.config.js +54 -50
  34. package/lib/configs/webpack.prod.config.js +72 -47
  35. package/lib/constants.js +31 -0
  36. package/lib/hooks/docsEntry.js +18 -0
  37. package/lib/jest/preProcessors/cssPreprocessor.js +16 -7
  38. package/lib/loaderUtils/configsAssetsLoaders.js +117 -0
  39. package/lib/loaderUtils/getCSSLoaders.js +89 -21
  40. package/lib/loaderUtils/index.js +4 -4
  41. package/lib/loaderUtils/windowsModification.js +11 -0
  42. package/lib/loaders/fileBountryLoader.js +17 -0
  43. package/lib/loaders/scriptInstrumentLoader.js +2 -2
  44. package/lib/loaders/selectorMappingLoader.js +75 -0
  45. package/lib/loaders/workerLoader.js +9 -9
  46. package/lib/pluginUtils/configHtmlWebpackPlugins.js +60 -0
  47. package/lib/pluginUtils/getDevPlugins.js +71 -45
  48. package/lib/pluginUtils/getDocsPlugins.js +21 -10
  49. package/lib/pluginUtils/getLibraryImactPlugins.js +23 -0
  50. package/lib/pluginUtils/getProdPlugins.js +75 -58
  51. package/lib/pluginUtils/index.js +12 -12
  52. package/lib/plugins/CdnChangePlugin.js +16 -2
  53. package/lib/plugins/EFCPlugin.js +52 -20
  54. package/lib/plugins/EFCPlugin.md +6 -0
  55. package/lib/plugins/EFCTemplatePlugin.js +151 -0
  56. package/lib/plugins/I18NInjectIntoIndexPlugin.js +4 -4
  57. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
  58. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
  59. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +8 -8
  60. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -86
  61. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  62. package/lib/plugins/I18nSplitPlugin/index.js +57 -57
  63. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +2 -2
  64. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +1 -1
  65. package/lib/plugins/ManifestPlugin.js +8 -0
  66. package/lib/plugins/RequireVariablePublicPlugin.js +30 -0
  67. package/lib/plugins/ResourceHintsPlugin.js +17 -17
  68. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +11 -7
  69. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -0
  70. package/lib/plugins/SelectorPlugin.js +97 -0
  71. package/lib/plugins/ServiceWorkerPlugin.js +13 -9
  72. package/lib/plugins/SourceMapHookPlugin.js +9 -3
  73. package/lib/plugins/TPHashMappingPlugin.js +4 -4
  74. package/lib/plugins/VariableConversionCollector.js +352 -0
  75. package/lib/plugins/composeCommonPlugin.js +30 -0
  76. package/lib/plugins/index.js +36 -36
  77. package/lib/plugins/libraryImpactPlugin.js +14 -2
  78. package/lib/postcss-plugins/{ExcludeRTLPlugin.js → ExcludePlugin.js} +1 -1
  79. package/lib/postcss-plugins/RTLSplitPlugin.js +36 -32
  80. package/lib/postcss-plugins/ValueReplacer.js +46 -0
  81. package/lib/postcss-plugins/__test__/hoverActivePlugin.spec.js +22 -0
  82. package/lib/postcss-plugins/__test__/test1Input.css +39 -0
  83. package/lib/postcss-plugins/__test__/test1Output.css +39 -0
  84. package/lib/postcss-plugins/hoverActivePlugin.js +389 -0
  85. package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +60 -0
  86. package/lib/postcss-plugins/variableModificationPlugin/index.js +307 -0
  87. package/lib/postcss-plugins/variableModifier.js +244 -0
  88. package/lib/schemas/index.js +174 -11
  89. package/lib/servers/devBuild.js +102 -0
  90. package/lib/servers/docsServerCore.js +16 -18
  91. package/lib/servers/getCliPath.js +28 -0
  92. package/lib/servers/httpsOptions.js +49 -0
  93. package/lib/servers/nowatchserver.js +206 -0
  94. package/lib/servers/server.js +114 -82
  95. package/lib/sh/pre-commit.sh +34 -34
  96. package/lib/sh/reportPublish.sh +45 -45
  97. package/lib/templates/linterConstant.js +1 -1
  98. package/lib/utils/buildstats.html +148 -148
  99. package/lib/utils/cssClassNameGenerate.js +9 -2
  100. package/lib/utils/cssURLReplacer.js +30 -43
  101. package/lib/utils/getCurrentBranch.js +1 -1
  102. package/lib/utils/getDependenciesImpactList.js +14 -12
  103. package/lib/utils/getFileType.js +49 -0
  104. package/lib/utils/getOptions.js +118 -10
  105. package/lib/utils/index.js +44 -20
  106. package/lib/utils/jsonHelper.js +12 -3
  107. package/lib/utils/reinstallDependencies.js +1 -1
  108. package/lib/utils/repoClone.js +16 -4
  109. package/lib/utils/resultSchema.json +73 -73
  110. package/lib/utils/rtl.js +19 -2
  111. package/lib/utils/useExitCleanup.js +55 -0
  112. package/npm8.md +9 -0
  113. package/package.json +121 -142
  114. package/postpublish.js +8 -0
  115. package/result.json +1 -0
  116. package/templates/app/.eslintrc.js +140 -140
  117. package/templates/app/README.md +12 -12
  118. package/templates/app/app/index.html +24 -24
  119. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  120. package/templates/app/app/properties/i18nkeys.json +3 -3
  121. package/templates/app/docs/all.html +69 -69
  122. package/templates/app/mockapi/index.js +18 -18
  123. package/templates/app/package.json +37 -37
  124. package/templates/app/src/actions/SampleActions/index.js +37 -37
  125. package/templates/app/src/actions/index.js +65 -65
  126. package/templates/app/src/appUrls.js +19 -19
  127. package/templates/app/src/components/Alert/Alert.js +134 -134
  128. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  129. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  130. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  131. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  132. package/templates/app/src/components/Sample/SampleList.js +61 -61
  133. package/templates/app/src/components/Slider/Slider.css +41 -41
  134. package/templates/app/src/components/Slider/Slider.js +55 -55
  135. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  136. package/templates/app/src/containers/AppContainer/index.js +96 -96
  137. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  138. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  139. package/templates/app/src/containers/DevTools/index.js +10 -10
  140. package/templates/app/src/containers/Header/index.js +67 -67
  141. package/templates/app/src/containers/Header/index.module.css +43 -43
  142. package/templates/app/src/containers/Redirect/index.js +63 -63
  143. package/templates/app/src/containers/Redirector/index.js +47 -47
  144. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  145. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  146. package/templates/app/src/historyChange.js +5 -5
  147. package/templates/app/src/index.html +10 -10
  148. package/templates/app/src/index.js +24 -24
  149. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  150. package/templates/app/src/reducers/alertData.js +11 -11
  151. package/templates/app/src/reducers/index.js +6 -6
  152. package/templates/app/src/reducers/samples.js +19 -19
  153. package/templates/app/src/store/configureStore.dev.js +51 -51
  154. package/templates/app/src/store/configureStore.js +5 -5
  155. package/templates/app/src/store/configureStore.prod.js +26 -26
  156. package/templates/app/src/util/Common.js +5 -5
  157. package/templates/app/src/util/RequestAPI.js +132 -132
  158. package/templates/docs/a.html +13 -0
  159. package/templates/docs/all.html +249 -249
  160. package/templates/docs/component.html +178 -178
  161. package/templates/docs/components.html +221 -221
  162. package/templates/docs/css/b.min.css +6 -6
  163. package/templates/docs/css/component.css +42 -42
  164. package/templates/docs/css/componentTest.css +6 -6
  165. package/templates/docs/css/hopscotch.css +585 -585
  166. package/templates/docs/css/style.css +1022 -1022
  167. package/templates/docs/docsEntry.js +14 -0
  168. package/templates/docs/docsRoot.js +3 -0
  169. package/templates/docs/impactReportTemplate.html +154 -154
  170. package/templates/docs/index.html +1501 -1493
  171. package/templates/docs/js/active-line.js +72 -72
  172. package/templates/docs/js/b.min.js +7 -7
  173. package/templates/docs/js/codemirror.js +9680 -9680
  174. package/templates/docs/js/designTokens.js +334 -334
  175. package/templates/docs/js/j.min.js +4 -4
  176. package/templates/docs/js/javascript.js +874 -874
  177. package/templates/docs/js/matchbrackets.js +145 -145
  178. package/unittest/index.html +37 -0
  179. package/cert/cert.pem +0 -105
  180. package/cert/key.pem +0 -30
@@ -67,10 +67,10 @@ module.exports = {
67
67
  }],
68
68
  include: _path.default.join(appPath, 'src')
69
69
  }
70
- /*,
71
- {
72
- test: /\.css$/,
73
- use: [MiniCssExtractPlugin.loader, 'css-loader']
70
+ /*,
71
+ {
72
+ test: /\.css$/,
73
+ use: [MiniCssExtractPlugin.loader, 'css-loader']
74
74
  }*/
75
75
  , {
76
76
  test: /(\.module)?\.css$/,
@@ -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,25 @@ var _pluginUtils = require("../pluginUtils");
8
8
 
9
9
  var _loaderUtils = require("../loaderUtils");
10
10
 
11
+ var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
12
+
13
+ var _fs = require("fs");
14
+
15
+ var _resolvers = require("./resolvers");
16
+
11
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
18
 
13
- let options = (0, _utils.getOptions)();
14
- let {
19
+ const options = (0, _utils.getOptions)();
20
+ const {
15
21
  docs: {
16
22
  componentFolder,
23
+ enableChunkHash,
17
24
  cssUniqueness,
18
- hasRTL,
19
- rtlExclude,
25
+ plugins,
26
+ exclude,
27
+ mediaQueryHoverActiveString,
28
+ cssVariableReplacementConfig,
29
+ selectorWeightConfig,
20
30
  cssHashSelectors,
21
31
  classNamePrefix
22
32
  },
@@ -24,93 +34,98 @@ let {
24
34
  folder
25
35
  }
26
36
  } = options;
27
- let appPath = process.cwd();
37
+ const appPath = process.cwd();
38
+ const nameTemplate = (0, _configsAssetsLoaders.createNameTemplate)(enableChunkHash);
39
+
40
+ const docsAppEntry = _path.default.join(appPath, componentFolder, 'index.js');
41
+
42
+ const docsEntry = _path.default.resolve(__dirname, '..', 'hooks', 'docsEntry.js');
43
+
44
+ console.log("jijij", (0, _fs.readFileSync)(docsEntry).toString().replace('TOTAL_COMPONENTS_MAPPING', JSON.stringify(_path.default.relative(_path.default.dirname(docsEntry), docsAppEntry))));
45
+ (0, _fs.writeFileSync)(docsEntry, (0, _fs.readFileSync)(docsEntry).toString().replace('TOTAL_COMPONENTS_MAPPING', JSON.stringify(_path.default.relative(_path.default.dirname(docsEntry), docsAppEntry))));
28
46
 
29
47
  module.exports = isSSTest => ({
30
48
  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"]
49
+ main: [docsEntry // path.resolve(__dirname, '..', 'hooks', 'docsProptypeHook.js'),
50
+ // path.join(appPath, componentFolder, 'index.js')
51
+ ],
52
+ vendor: ['react', 'react-dom', 'redux', 'react-redux']
33
53
  },
34
- devtool: "none",
35
- mode: "development",
54
+ devtool: 'none',
55
+ mode: 'development',
36
56
  output: {
37
- path: _path.default.join(appPath, "build"),
38
- filename: "js/[name].js",
39
- publicPath: "/docs/",
40
- library: "Component",
41
- libraryTarget: "umd"
57
+ path: _path.default.join(appPath, 'build'),
58
+ filename: 'js/[name].js',
59
+ publicPath: '/docs/' // library: 'Component',
60
+ // libraryTarget: 'umd'
61
+
42
62
  },
43
63
  plugins: (0, _pluginUtils.getDocsPlugins)(isSSTest, options),
44
64
  module: {
45
65
  rules: [{
46
66
  test: /\.js$/,
47
67
  use: [{
48
- loader: "babel-loader",
68
+ loader: 'babel-loader',
49
69
  options: {
50
- presets: [[require.resolve("@babel/preset-env"), {
70
+ presets: [[require.resolve('@babel/preset-env'), {
51
71
  modules: false
52
- }], require.resolve("@babel/preset-react")],
53
- plugins: [[require.resolve("@babel/plugin-transform-runtime"), {
72
+ }], require.resolve('@babel/preset-react')],
73
+ plugins: [[require.resolve('@babel/plugin-transform-runtime'), {
54
74
  helpers: true,
55
75
  regenerator: false
56
- }], require.resolve("@babel/plugin-syntax-dynamic-import"), require.resolve("@babel/plugin-syntax-object-rest-spread")],
76
+ }], require.resolve('@babel/plugin-syntax-dynamic-import'), require.resolve('@babel/plugin-syntax-object-rest-spread')],
57
77
  cacheDirectory: true
58
78
  }
59
79
  }],
60
80
  include: _path.default.join(appPath, folder)
61
81
  }, {
62
82
  test: /\.docs\.js$/,
63
- use: require.resolve("../loaders/docsLoader.js"),
83
+ use: require.resolve('../loaders/docsLoader.js'),
64
84
  include: _path.default.join(appPath, folder),
65
85
  exclude: /node_modules/
66
86
  }, {
67
87
  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
- }, {
79
- test: /\.html$/,
80
- use: {
81
- loader: "html-loader",
82
- options: {
83
- attrs: [":data-src"],
84
- interpolate: "require"
85
- }
86
- }
87
- }, {
88
- test: /\.ogg$/,
89
- use: ["file-loader?name=./fonts/[name].[ext]"]
90
- }, {
88
+ use: (0, _loaderUtils.getCSSLoaders)({
89
+ plugins,
90
+ exclude,
91
+ mediaQueryHoverActiveString,
92
+ cssVariableReplacementConfig,
93
+ selectorWeightConfig,
94
+ classNameBlob: false,
95
+ cssUniqueness,
96
+ selectorReplace: null,
97
+ cssHashSelectors,
98
+ classNamePrefix
99
+ })
100
+ }, (0, _configsAssetsLoaders.configImageLoader)(nameTemplate), (0, _configsAssetsLoaders.configFontLoader)(nameTemplate), (0, _configsAssetsLoaders.configSVGLoader)(nameTemplate), (0, _configsAssetsLoaders.configAudioLoader)(nameTemplate), (0, _configsAssetsLoaders.configVideoLoader)(nameTemplate), // {
101
+ // test: /\.html$/,
102
+ // use: {
103
+ // loader: 'html-loader',
104
+ // options: {
105
+ // attrs: [':data-src'],
106
+ // interpolate: 'require'
107
+ // }
108
+ // }
109
+ // },
110
+ {
91
111
  test: /\.tmpl$/,
92
112
  use: [{
93
- loader: "html-loader",
113
+ loader: 'html-loader',
94
114
  options: {
95
- interpolate: "require",
96
- ignoreCustomFragments: [/\{\{.*?}}/, /\$\{.*?}/],
97
- minimize: true,
98
- removeComments: true,
99
- collapseWhitespace: false,
100
- removeAttributeQuotes: false,
101
- minifyCSS: false,
102
- minifyJS: false
115
+ minimize: {
116
+ removeComments: true,
117
+ collapseWhitespace: false,
118
+ removeAttributeQuotes: false,
119
+ minifyCSS: false,
120
+ minifyJS: false
121
+ }
103
122
  }
104
123
  }]
105
124
  }]
106
125
  },
107
126
  externals: {
108
- ZC: "$ZC"
127
+ ZC: '$ZC'
109
128
  },
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
- }
129
+ resolve: (0, _resolvers.moduleResolver)(options),
130
+ resolveLoader: (0, _resolvers.loaderResolver)(options)
116
131
  });
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ var _path = _interopRequireDefault(require("path"));
4
+
5
+ var _utils = require("../utils");
6
+
7
+ var _pluginUtils = require("../pluginUtils");
8
+
9
+ var _loaderUtils = require("../loaderUtils");
10
+
11
+ var _libAlias = require("./libAlias");
12
+
13
+ var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
14
+
15
+ var _fs = require("fs");
16
+
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+
19
+ const options = (0, _utils.getOptions)();
20
+ const {
21
+ unstableDepsInverse,
22
+ docs: {
23
+ componentFolder,
24
+ disableES5Transpile,
25
+ enableChunkHash,
26
+ cssUniqueness,
27
+ plugins,
28
+ exclude,
29
+ mediaQueryHoverActiveString,
30
+ cssVariableReplacementConfig,
31
+ cssHashSelectors,
32
+ classNamePrefix
33
+ },
34
+ app: {
35
+ folder
36
+ }
37
+ } = options;
38
+ const appPath = process.cwd();
39
+ const nameTemplate = (0, _configsAssetsLoaders.createNameTemplate)(enableChunkHash);
40
+
41
+ const docsEntry = _path.default.resolve(__dirname, '..', 'hooks', 'docsEntry.js');
42
+
43
+ (0, _fs.readFileSync)();
44
+
45
+ module.exports = isSSTest => ({
46
+ entry: {
47
+ main: [_path.default.resolve(__dirname, '..', 'hooks', 'docsEntry.js') // path.resolve(__dirname, '..', 'hooks', 'docsProptypeHook.js'),
48
+ // path.join(appPath, componentFolder, 'index.js')
49
+ ],
50
+ vendor: ['react', 'react-dom', 'redux', 'react-redux']
51
+ },
52
+ devtool: 'none',
53
+ mode: 'development',
54
+ output: {
55
+ path: _path.default.join(appPath, 'build'),
56
+ filename: 'js/[name].js',
57
+ publicPath: '/docs/',
58
+ library: 'Component',
59
+ libraryTarget: 'umd'
60
+ },
61
+ plugins: (0, _pluginUtils.getDocsPlugins)(isSSTest, options),
62
+ module: {
63
+ rules: [{
64
+ test: /\.js$/,
65
+ use: [{
66
+ loader: 'babel-loader',
67
+ options: {
68
+ presets: [[require.resolve('@babel/preset-env'), {
69
+ modules: false
70
+ }], require.resolve('@babel/preset-react')],
71
+ plugins: [[require.resolve('@babel/plugin-transform-runtime'), {
72
+ helpers: true,
73
+ regenerator: false
74
+ }], require.resolve('@babel/plugin-syntax-dynamic-import'), require.resolve('@babel/plugin-syntax-object-rest-spread')],
75
+ cacheDirectory: true
76
+ }
77
+ }],
78
+ include: _path.default.join(appPath, folder)
79
+ }, {
80
+ test: /\.docs\.js$/,
81
+ use: require.resolve('../loaders/docsLoader.js'),
82
+ include: _path.default.join(appPath, folder),
83
+ exclude: /node_modules/
84
+ }, {
85
+ test: /(\.module)?\.css$/,
86
+ use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, cssVariableReplacementConfig, false, cssUniqueness, null, cssHashSelectors, classNamePrefix)
87
+ }, (0, _configsAssetsLoaders.configImageLoader)(nameTemplate), (0, _configsAssetsLoaders.configFontLoader)(nameTemplate), (0, _configsAssetsLoaders.configSVGLoader)(nameTemplate), (0, _configsAssetsLoaders.configAudioLoader)(nameTemplate), (0, _configsAssetsLoaders.configVideoLoader)(nameTemplate), {
88
+ test: /\.html$/,
89
+ use: {
90
+ loader: 'html-loader',
91
+ options: {
92
+ attrs: [':data-src'],
93
+ interpolate: 'require'
94
+ }
95
+ }
96
+ }, {
97
+ test: /\.tmpl$/,
98
+ use: [{
99
+ loader: 'html-loader',
100
+ options: {
101
+ minimize: {
102
+ removeComments: true,
103
+ collapseWhitespace: false,
104
+ removeAttributeQuotes: false,
105
+ minifyCSS: false,
106
+ minifyJS: false
107
+ }
108
+ }
109
+ }]
110
+ }]
111
+ },
112
+ externals: {
113
+ ZC: '$ZC'
114
+ },
115
+ resolve: {
116
+ modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules'],
117
+ alias: disableES5Transpile ? _libAlias.libAlias : {}
118
+ },
119
+ resolveLoader: {
120
+ modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
121
+ }
122
+ });
@@ -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
  };