@tarojs/webpack5-runner 3.5.0-alpha.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 (94) hide show
  1. package/README.md +3 -0
  2. package/dist/dependencies/TaroSingleEntryDependency.js +18 -0
  3. package/dist/dependencies/TaroSingleEntryDependency.js.map +1 -0
  4. package/dist/index.h5.js +224 -0
  5. package/dist/index.h5.js.map +1 -0
  6. package/dist/index.mini.js +69 -0
  7. package/dist/index.mini.js.map +1 -0
  8. package/dist/loaders/miniTemplateLoader.js +63 -0
  9. package/dist/loaders/miniTemplateLoader.js.map +1 -0
  10. package/dist/plugins/BuildNativePlugin.js +124 -0
  11. package/dist/plugins/BuildNativePlugin.js.map +1 -0
  12. package/dist/plugins/H5Plugin.js +91 -0
  13. package/dist/plugins/H5Plugin.js.map +1 -0
  14. package/dist/plugins/MiniPlugin.js +1027 -0
  15. package/dist/plugins/MiniPlugin.js.map +1 -0
  16. package/dist/plugins/MiniSplitChunksPlugin.js +678 -0
  17. package/dist/plugins/MiniSplitChunksPlugin.js.map +1 -0
  18. package/dist/plugins/TaroLoadChunksPlugin.js +176 -0
  19. package/dist/plugins/TaroLoadChunksPlugin.js.map +1 -0
  20. package/dist/plugins/TaroNormalModule.js +51 -0
  21. package/dist/plugins/TaroNormalModule.js.map +1 -0
  22. package/dist/plugins/TaroNormalModulesPlugin.js +63 -0
  23. package/dist/plugins/TaroNormalModulesPlugin.js.map +1 -0
  24. package/dist/plugins/TaroSingleEntryPlugin.js +26 -0
  25. package/dist/plugins/TaroSingleEntryPlugin.js.map +1 -0
  26. package/dist/plugins/WebpackBarPlugin.js +26 -0
  27. package/dist/plugins/WebpackBarPlugin.js.map +1 -0
  28. package/dist/postcss/postcss.h5.js +70 -0
  29. package/dist/postcss/postcss.h5.js.map +1 -0
  30. package/dist/postcss/postcss.mini.js +75 -0
  31. package/dist/postcss/postcss.mini.js.map +1 -0
  32. package/dist/prebundle/bundle.js +167 -0
  33. package/dist/prebundle/bundle.js.map +1 -0
  34. package/dist/prebundle/constant.js +60 -0
  35. package/dist/prebundle/constant.js.map +1 -0
  36. package/dist/prebundle/index.js +234 -0
  37. package/dist/prebundle/index.js.map +1 -0
  38. package/dist/prebundle/scanImports.js +193 -0
  39. package/dist/prebundle/scanImports.js.map +1 -0
  40. package/dist/prebundle/utils.js +170 -0
  41. package/dist/prebundle/utils.js.map +1 -0
  42. package/dist/prebundle/webpack/TaroContainerEntryModule.js +76 -0
  43. package/dist/prebundle/webpack/TaroContainerEntryModule.js.map +1 -0
  44. package/dist/prebundle/webpack/TaroContainerPlugin.js +75 -0
  45. package/dist/prebundle/webpack/TaroContainerPlugin.js.map +1 -0
  46. package/dist/prebundle/webpack/TaroContainerReferencePlugin.js +124 -0
  47. package/dist/prebundle/webpack/TaroContainerReferencePlugin.js.map +1 -0
  48. package/dist/prebundle/webpack/index.js +1 -0
  49. package/dist/prebundle/webpack/index.js.map +1 -0
  50. package/dist/prerender/prerender.js +228 -0
  51. package/dist/prerender/prerender.js.map +1 -0
  52. package/dist/template/comp.js +4 -0
  53. package/dist/template/component.js +10 -0
  54. package/dist/template/component.js.map +1 -0
  55. package/dist/template/custom-wrapper.js +7 -0
  56. package/dist/template/custom-wrapper.js.map +1 -0
  57. package/dist/utils/H5AppInstance.js +110 -0
  58. package/dist/utils/H5AppInstance.js.map +1 -0
  59. package/dist/utils/index.js +53 -0
  60. package/dist/utils/index.js.map +1 -0
  61. package/dist/utils/logHelper.js +153 -0
  62. package/dist/utils/logHelper.js.map +1 -0
  63. package/dist/utils/types.js +3 -0
  64. package/dist/utils/types.js.map +1 -0
  65. package/dist/utils/webpack.js +12 -0
  66. package/dist/utils/webpack.js.map +1 -0
  67. package/dist/webpack/BaseConfig.js +155 -0
  68. package/dist/webpack/BaseConfig.js.map +1 -0
  69. package/dist/webpack/BuildNativePlugin.js +57 -0
  70. package/dist/webpack/BuildNativePlugin.js.map +1 -0
  71. package/dist/webpack/Combination.js +69 -0
  72. package/dist/webpack/Combination.js.map +1 -0
  73. package/dist/webpack/H5BaseConfig.js +30 -0
  74. package/dist/webpack/H5BaseConfig.js.map +1 -0
  75. package/dist/webpack/H5Combination.js +106 -0
  76. package/dist/webpack/H5Combination.js.map +1 -0
  77. package/dist/webpack/H5WebpackModule.js +261 -0
  78. package/dist/webpack/H5WebpackModule.js.map +1 -0
  79. package/dist/webpack/H5WebpackPlugin.js +85 -0
  80. package/dist/webpack/H5WebpackPlugin.js.map +1 -0
  81. package/dist/webpack/MiniBaseConfig.js +73 -0
  82. package/dist/webpack/MiniBaseConfig.js.map +1 -0
  83. package/dist/webpack/MiniCombination.js +115 -0
  84. package/dist/webpack/MiniCombination.js.map +1 -0
  85. package/dist/webpack/MiniWebpackModule.js +204 -0
  86. package/dist/webpack/MiniWebpackModule.js.map +1 -0
  87. package/dist/webpack/MiniWebpackPlugin.js +154 -0
  88. package/dist/webpack/MiniWebpackPlugin.js.map +1 -0
  89. package/dist/webpack/WebpackModule.js +174 -0
  90. package/dist/webpack/WebpackModule.js.map +1 -0
  91. package/dist/webpack/WebpackPlugin.js +84 -0
  92. package/dist/webpack/WebpackPlugin.js.map +1 -0
  93. package/index.js +7 -0
  94. package/package.json +103 -0
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.H5WebpackModule = void 0;
4
+ const helper_1 = require("@tarojs/helper");
5
+ const WebpackModule_1 = require("./WebpackModule");
6
+ const postcss_h5_1 = require("../postcss/postcss.h5");
7
+ const taroModuleRegs = [/@tarojs[/\\_]components/, /\btaro-components\b/];
8
+ const defaultEsnextModuleRegs = [
9
+ /@tarojs[/\\_]components/,
10
+ /\btaro-components\b/,
11
+ /@tarojs[/\\_]taro-h5/,
12
+ /\btaro-h5\b/,
13
+ /@tarojs[/\\_]router/,
14
+ /\btaro-router\b/
15
+ ];
16
+ const isTaroModule = (filename) => taroModuleRegs.some(reg => reg.test(filename));
17
+ const getEsnextModuleRules = (esnextModules) => {
18
+ return [...defaultEsnextModuleRegs, ...esnextModules];
19
+ };
20
+ class H5WebpackModule {
21
+ constructor(combination) {
22
+ this.combination = combination;
23
+ }
24
+ getModules() {
25
+ const { styleLoaderOption = {}, sassLoaderOption = {}, lessLoaderOption = {}, stylusLoaderOption = {}, staticDirectory = 'static' } = this.combination.config;
26
+ const { postcssOption, cssModuleOption } = this.parsePostCSSOptions();
27
+ const resolveUrlLoader = WebpackModule_1.WebpackModule.getResolveUrlLoader();
28
+ const sassLoader = WebpackModule_1.WebpackModule.getSassLoader(sassLoaderOption);
29
+ const scssLoader = WebpackModule_1.WebpackModule.getScssLoader(sassLoaderOption);
30
+ const lessLoader = WebpackModule_1.WebpackModule.getLessLoader(lessLoaderOption);
31
+ const stylusLoader = WebpackModule_1.WebpackModule.getStylusLoader(stylusLoaderOption);
32
+ const rule = {
33
+ taroStyle: this.getTaroStyleRule(styleLoaderOption),
34
+ customStyle: this.getCustomStyleRule(styleLoaderOption),
35
+ css: {
36
+ test: helper_1.REG_STYLE,
37
+ oneOf: this.getCSSLoaders(cssModuleOption)
38
+ },
39
+ postcss: this.getPostCSSRule(postcssOption),
40
+ sass: {
41
+ test: helper_1.REG_SASS_SASS,
42
+ use: [resolveUrlLoader, sassLoader]
43
+ },
44
+ scss: {
45
+ test: helper_1.REG_SASS_SCSS,
46
+ use: [resolveUrlLoader, scssLoader]
47
+ },
48
+ less: {
49
+ test: helper_1.REG_LESS,
50
+ use: [lessLoader]
51
+ },
52
+ styl: {
53
+ test: helper_1.REG_STYLUS,
54
+ use: [stylusLoader]
55
+ },
56
+ script: this.getScriptRule(),
57
+ media: this.getMediaRule(staticDirectory),
58
+ font: this.getFontRule(staticDirectory),
59
+ image: this.getImageRule(staticDirectory)
60
+ };
61
+ return { rule };
62
+ }
63
+ parsePostCSSOptions() {
64
+ const { postcss: postcssOption = {} } = this.combination.config;
65
+ const defaultCssModuleOption = {
66
+ enable: false,
67
+ config: {
68
+ namingPattern: 'global',
69
+ generateScopedName: '[name]__[local]___[hash:base64:5]'
70
+ }
71
+ };
72
+ const cssModuleOption = helper_1.recursiveMerge({}, defaultCssModuleOption, postcssOption.cssModules);
73
+ return {
74
+ postcssOption,
75
+ cssModuleOption
76
+ };
77
+ }
78
+ /** Taro 内置样式(@tarojs/components)必须在顶部注入,以保证可被覆盖 */
79
+ getTaroStyleRule(styleLoaderOption) {
80
+ const defaultConfig = {
81
+ insert: function insertAtTop(element) {
82
+ // eslint-disable-next-line no-var
83
+ var parent = document.querySelector('head');
84
+ if (parent) {
85
+ // eslint-disable-next-line no-var
86
+ var lastInsertedElement = window._lastElementInsertedByStyleLoader;
87
+ if (!lastInsertedElement) {
88
+ parent.insertBefore(element, parent.firstChild);
89
+ }
90
+ else if (lastInsertedElement.nextSibling) {
91
+ parent.insertBefore(element, lastInsertedElement.nextSibling);
92
+ }
93
+ else {
94
+ parent.appendChild(element);
95
+ }
96
+ window._lastElementInsertedByStyleLoader = element;
97
+ }
98
+ }
99
+ };
100
+ const options = helper_1.recursiveMerge({}, defaultConfig, styleLoaderOption);
101
+ const topStyleLoader = WebpackModule_1.WebpackModule.getStyleLoader(options);
102
+ return {
103
+ test: helper_1.REG_STYLE,
104
+ use: [topStyleLoader],
105
+ include: [(filename) => isTaroModule(filename)]
106
+ };
107
+ }
108
+ /** 开发者的样式在尾部注入 */
109
+ getCustomStyleRule(styleLoaderOption) {
110
+ const { enableExtract = process.env.NODE_ENV === 'production' } = this.combination.config;
111
+ const extractCssLoader = WebpackModule_1.WebpackModule.getExtractCSSLoader();
112
+ const styleLoader = WebpackModule_1.WebpackModule.getStyleLoader(styleLoaderOption);
113
+ const lastStyleLoader = enableExtract ? extractCssLoader : styleLoader;
114
+ return {
115
+ test: helper_1.REG_STYLE,
116
+ use: [lastStyleLoader],
117
+ exclude: [(filename) => isTaroModule(filename)]
118
+ };
119
+ }
120
+ getCSSLoaders(cssModuleOption) {
121
+ const { cssLoaderOption = {} } = this.combination.config;
122
+ const cssLoader = WebpackModule_1.WebpackModule.getCSSLoader(cssLoaderOption);
123
+ const cssLoaders = [{
124
+ use: [cssLoader]
125
+ }];
126
+ if (cssModuleOption.enable) {
127
+ const cssModuleOptionConfig = helper_1.recursiveMerge({}, {
128
+ namingPattern: 'module',
129
+ generateScopedName: '[name]__[local]___[hash:base64:5]'
130
+ }, cssModuleOption.config);
131
+ const cssLoaderWithModule = WebpackModule_1.WebpackModule.getCSSLoaderWithModule(cssModuleOptionConfig, cssLoaderOption);
132
+ const styleModuleReg = /(.*\.module).*\.(css|s[ac]ss|less|styl)\b/;
133
+ const styleGlobalReg = /(.*\.global).*\.(css|s[ac]ss|less|styl)\b/;
134
+ let cssModuleCondition;
135
+ if (cssModuleOptionConfig.namingPattern === 'module') {
136
+ /* 不排除 node_modules 内的样式 */
137
+ cssModuleCondition = styleModuleReg;
138
+ // for vue
139
+ cssLoaders.unshift({
140
+ resourceQuery: /module=/,
141
+ use: [cssLoaderWithModule]
142
+ });
143
+ }
144
+ else {
145
+ cssModuleCondition = {
146
+ and: [
147
+ { not: styleGlobalReg },
148
+ { not: helper_1.isNodeModule }
149
+ ]
150
+ };
151
+ }
152
+ cssLoaders.unshift({
153
+ include: [cssModuleCondition],
154
+ use: [cssLoaderWithModule]
155
+ });
156
+ }
157
+ return cssLoaders;
158
+ }
159
+ getPostCSSRule(postcssOption) {
160
+ const { appPath, config } = this.combination;
161
+ const { esnextModules = [], designWidth = 750, deviceRatio } = config;
162
+ const esnextModuleRules = getEsnextModuleRules(esnextModules);
163
+ /**
164
+ * isEsnextModule
165
+ *
166
+ * 使用正则匹配判断是否是es模块
167
+ * 规则参考:https://github.com/webpack/webpack/blob/master/lib/RuleSet.js#L413
168
+ */
169
+ const isEsnextModule = (filename) => esnextModuleRules.some(pattern => {
170
+ if (pattern instanceof RegExp) {
171
+ return pattern.test(filename);
172
+ }
173
+ else {
174
+ return filename.indexOf(pattern) > -1;
175
+ }
176
+ });
177
+ const postcssLoader = WebpackModule_1.WebpackModule.getPostCSSLoader({
178
+ postcssOptions: {
179
+ plugins: postcss_h5_1.getPostcssPlugins(appPath, {
180
+ designWidth,
181
+ deviceRatio,
182
+ postcssOption
183
+ })
184
+ }
185
+ });
186
+ return {
187
+ test: helper_1.REG_STYLE,
188
+ use: [postcssLoader],
189
+ exclude: [
190
+ filename => {
191
+ if (isTaroModule(filename)) {
192
+ return true;
193
+ }
194
+ else if (isEsnextModule(filename)) {
195
+ return false;
196
+ }
197
+ else {
198
+ return helper_1.isNodeModule(filename);
199
+ }
200
+ }
201
+ ]
202
+ };
203
+ }
204
+ getScriptRule() {
205
+ const rule = WebpackModule_1.WebpackModule.getScriptRule();
206
+ rule.exclude = [filename => {
207
+ /**
208
+ * 要优先处理 css-loader 问题
209
+ *
210
+ * https://github.com/webpack-contrib/mini-css-extract-plugin/issues/471#issuecomment-750266195
211
+ */
212
+ if (/css-loader/.test(filename))
213
+ return true;
214
+ // 若包含 @tarojs/components,则跳过 babel-loader 处理
215
+ if (/@tarojs\/components/.test(filename))
216
+ return true;
217
+ // 非 node_modules 下的文件直接走 babel-loader 逻辑
218
+ if (!(/node_modules/.test(filename)))
219
+ return false;
220
+ // 除了包含 taro 和 inversify 的第三方依赖均不经过 babel-loader 处理
221
+ if (/taro/.test(filename))
222
+ return false;
223
+ if (/inversify/.test(filename))
224
+ return false;
225
+ return true;
226
+ }];
227
+ return rule;
228
+ }
229
+ getMediaRule(staticDirectory) {
230
+ const sourceRoot = this.combination.sourceRoot;
231
+ const { mediaUrlLoaderOption } = this.combination.config;
232
+ const options = Object.assign({
233
+ name(filename) {
234
+ return filename.replace(sourceRoot + '/', `${staticDirectory}/media/`);
235
+ }
236
+ }, mediaUrlLoaderOption);
237
+ return WebpackModule_1.WebpackModule.getMediaRule(sourceRoot, options);
238
+ }
239
+ getFontRule(staticDirectory) {
240
+ const sourceRoot = this.combination.sourceRoot;
241
+ const { fontUrlLoaderOption } = this.combination.config;
242
+ const options = Object.assign({
243
+ name(filename) {
244
+ return filename.replace(sourceRoot + '/', `${staticDirectory}/fonts/`);
245
+ }
246
+ }, fontUrlLoaderOption);
247
+ return WebpackModule_1.WebpackModule.getFontRule(sourceRoot, options);
248
+ }
249
+ getImageRule(staticDirectory) {
250
+ const sourceRoot = this.combination.sourceRoot;
251
+ const { imageUrlLoaderOption } = this.combination.config;
252
+ const options = Object.assign({
253
+ name(filename) {
254
+ return filename.replace(sourceRoot + '/', `${staticDirectory}/images/`);
255
+ }
256
+ }, imageUrlLoaderOption);
257
+ return WebpackModule_1.WebpackModule.getImageRule(sourceRoot, options);
258
+ }
259
+ }
260
+ exports.H5WebpackModule = H5WebpackModule;
261
+ //# sourceMappingURL=H5WebpackModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"H5WebpackModule.js","sourceRoot":"","sources":["../../src/webpack/H5WebpackModule.ts"],"names":[],"mappings":";;;AAAA,2CAQuB;AACvB,mDAA+C;AAC/C,sDAAyD;AAYzD,MAAM,cAAc,GAAG,CAAC,yBAAyB,EAAE,qBAAqB,CAAC,CAAA;AACzE,MAAM,uBAAuB,GAAG;IAC9B,yBAAyB;IACzB,qBAAqB;IACrB,sBAAsB;IACtB,aAAa;IACb,qBAAqB;IACrB,iBAAiB;CAClB,CAAA;AACD,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;AAEzF,MAAM,oBAAoB,GAAG,CAAC,aAAkC,EAAE,EAAE;IAClE,OAAO,CAAC,GAAG,uBAAuB,EAAE,GAAG,aAAa,CAAC,CAAA;AACvD,CAAC,CAAA;AAED,MAAa,eAAe;IAG1B,YAAa,WAA0B;QACrC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAED,UAAU;QACR,MAAM,EACJ,iBAAiB,GAAG,EAAE,EACtB,gBAAgB,GAAG,EAAE,EACrB,gBAAgB,GAAG,EAAE,EACrB,kBAAkB,GAAG,EAAE,EACvB,eAAe,GAAG,QAAQ,EAC3B,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;QAE3B,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAErE,MAAM,gBAAgB,GAAG,6BAAa,CAAC,mBAAmB,EAAE,CAAA;QAC5D,MAAM,UAAU,GAAG,6BAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAA;QAChE,MAAM,UAAU,GAAG,6BAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAA;QAChE,MAAM,UAAU,GAAG,6BAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAA;QAChE,MAAM,YAAY,GAAG,6BAAa,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAA;QAEtE,MAAM,IAAI,GAA0B;YAClC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC;YACnD,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;YACvD,GAAG,EAAE;gBACH,IAAI,EAAE,kBAAS;gBACf,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;aAC3C;YACD,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;YAE3C,IAAI,EAAE;gBACJ,IAAI,EAAE,sBAAa;gBACnB,GAAG,EAAE,CAAC,gBAAgB,EAAE,UAAU,CAAC;aACpC;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,sBAAa;gBACnB,GAAG,EAAE,CAAC,gBAAgB,EAAE,UAAU,CAAC;aACpC;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,iBAAQ;gBACd,GAAG,EAAE,CAAC,UAAU,CAAC;aAClB;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,mBAAU;gBAChB,GAAG,EAAE,CAAC,YAAY,CAAC;aACpB;YAED,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE;YAE5B,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;YAEzC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;YAEvC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;SAC1C,CAAA;QACD,OAAO,EAAE,IAAI,EAAE,CAAA;IACjB,CAAC;IAED,mBAAmB;QACjB,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;QAC/D,MAAM,sBAAsB,GAA6B;YACvD,MAAM,EAAE,KAAK;YACb,MAAM,EAAE;gBACN,aAAa,EAAE,QAAQ;gBACvB,kBAAkB,EAAE,mCAAmC;aACxD;SACF,CAAA;QAED,MAAM,eAAe,GAA6B,uBAAc,CAAC,EAAE,EAAE,sBAAsB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;QAEtH,OAAO;YACL,aAAa;YACb,eAAe;SAChB,CAAA;IACH,CAAC;IAED,mDAAmD;IACnD,gBAAgB,CAAE,iBAAiB;QACjC,MAAM,aAAa,GAAG;YACpB,MAAM,EAAE,SAAS,WAAW,CAAE,OAAO;gBACnC,kCAAkC;gBAClC,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;gBAC3C,IAAI,MAAM,EAAE;oBACV,kCAAkC;oBAClC,IAAI,mBAAmB,GAAI,MAAc,CAAC,iCAAiC,CAAA;oBAC3E,IAAI,CAAC,mBAAmB,EAAE;wBACxB,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;qBAChD;yBAAM,IAAI,mBAAmB,CAAC,WAAW,EAAE;wBAC1C,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAA;qBAC9D;yBAAM;wBACL,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;qBAC5B;oBACA,MAAc,CAAC,iCAAiC,GAAG,OAAO,CAAA;iBAC5D;YACH,CAAC;SACF,CAAA;QACD,MAAM,OAAO,GAAG,uBAAc,CAAC,EAAE,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAA;QACpE,MAAM,cAAc,GAAG,6BAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAC5D,OAAO;YACL,IAAI,EAAE,kBAAS;YACf,GAAG,EAAE,CAAC,cAAc,CAAC;YACrB,OAAO,EAAE,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACxD,CAAA;IACH,CAAC;IAED,kBAAkB;IAClB,kBAAkB,CAAE,iBAAiB;QACnC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;QACzF,MAAM,gBAAgB,GAAG,6BAAa,CAAC,mBAAmB,EAAE,CAAA;QAC5D,MAAM,WAAW,GAAG,6BAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAA;QACnE,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAA;QACtE,OAAO;YACL,IAAI,EAAE,kBAAS;YACf,GAAG,EAAE,CAAC,eAAe,CAAC;YACtB,OAAO,EAAE,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACxD,CAAA;IACH,CAAC;IAED,aAAa,CAAE,eAAyC;QACtD,MAAM,EAAE,eAAe,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;QACxD,MAAM,SAAS,GAAG,6BAAa,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;QAE7D,MAAM,UAAU,GAAe,CAAC;gBAC9B,GAAG,EAAE,CAAC,SAAS,CAAC;aACjB,CAAC,CAAA;QAEF,IAAI,eAAe,CAAC,MAAM,EAAE;YAC1B,MAAM,qBAAqB,GAA0B,uBAAc,CAAC,EAAE,EAAE;gBACtE,aAAa,EAAE,QAAQ;gBACvB,kBAAkB,EAAE,mCAAmC;aACxD,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;YAC1B,MAAM,mBAAmB,GAAG,6BAAa,CAAC,sBAAsB,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAA;YACxG,MAAM,cAAc,GAAG,2CAA2C,CAAA;YAClE,MAAM,cAAc,GAAG,2CAA2C,CAAA;YAClE,IAAI,kBAAkB,CAAA;YAEtB,IAAI,qBAAqB,CAAC,aAAa,KAAK,QAAQ,EAAE;gBACpD,2BAA2B;gBAC3B,kBAAkB,GAAG,cAAc,CAAA;gBACnC,UAAU;gBACV,UAAU,CAAC,OAAO,CAAC;oBACjB,aAAa,EAAE,SAAS;oBACxB,GAAG,EAAE,CAAC,mBAAmB,CAAC;iBAC3B,CAAC,CAAA;aACH;iBAAM;gBACL,kBAAkB,GAAG;oBACnB,GAAG,EAAE;wBACH,EAAE,GAAG,EAAE,cAAc,EAAE;wBACvB,EAAE,GAAG,EAAE,qBAAY,EAAE;qBACtB;iBACF,CAAA;aACF;YACD,UAAU,CAAC,OAAO,CAAC;gBACjB,OAAO,EAAE,CAAC,kBAAkB,CAAC;gBAC7B,GAAG,EAAE,CAAC,mBAAmB,CAAC;aAC3B,CAAC,CAAA;SACH;QAED,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,cAAc,CAAE,aAAa;QAC3B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAA;QAC5C,MAAM,EACJ,aAAa,GAAG,EAAyB,EACzC,WAAW,GAAG,GAAG,EACjB,WAAW,EACZ,GAAG,MAAM,CAAA;QACV,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAA;QAE7D;;;;;WAKG;QACH,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,EAAE,CAC1C,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC/B,IAAI,OAAO,YAAY,MAAM,EAAE;gBAC7B,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;aAC9B;iBAAM;gBACL,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;aACtC;QACH,CAAC,CAAC,CAAA;QACJ,MAAM,aAAa,GAAG,6BAAa,CAAC,gBAAgB,CAAC;YACnD,cAAc,EAAE;gBACd,OAAO,EAAE,8BAAiB,CAAC,OAAO,EAAE;oBAClC,WAAW;oBACX,WAAW;oBACX,aAAa;iBACd,CAAC;aACH;SACF,CAAC,CAAA;QACF,OAAO;YACL,IAAI,EAAE,kBAAS;YACf,GAAG,EAAE,CAAC,aAAa,CAAC;YACpB,OAAO,EAAE;gBACP,QAAQ,CAAC,EAAE;oBACT,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE;wBAC1B,OAAO,IAAI,CAAA;qBACZ;yBAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE;wBACnC,OAAO,KAAK,CAAA;qBACb;yBAAM;wBACL,OAAO,qBAAY,CAAC,QAAQ,CAAC,CAAA;qBAC9B;gBACH,CAAC;aACF;SACF,CAAA;IACH,CAAC;IAED,aAAa;QACX,MAAM,IAAI,GAAU,6BAAa,CAAC,aAAa,EAAE,CAAA;QAEjD,IAAI,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACzB;;;;mBAIG;gBACH,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAAE,OAAO,IAAI,CAAA;gBAC5C,6CAA6C;gBAC7C,IAAI,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAAE,OAAO,IAAI,CAAA;gBAErD,yCAAyC;gBACzC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAA;gBAElD,mDAAmD;gBACnD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAAE,OAAO,KAAK,CAAA;gBACvC,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAAE,OAAO,KAAK,CAAA;gBAE5C,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,YAAY,CAAE,eAAuB;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAA;QAC9C,MAAM,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;QACxD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAE,QAAgB;gBACpB,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,EAAE,GAAG,eAAe,SAAS,CAAC,CAAA;YACxE,CAAC;SACF,EAAE,oBAAoB,CAAC,CAAA;QACxB,OAAO,6BAAa,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;IAED,WAAW,CAAE,eAAuB;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAA;QAC9C,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;QACvD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAE,QAAgB;gBACpB,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,EAAE,GAAG,eAAe,SAAS,CAAC,CAAA;YACxE,CAAC;SACF,EAAE,mBAAmB,CAAC,CAAA;QACvB,OAAO,6BAAa,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,YAAY,CAAE,eAAuB;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAA;QAC9C,MAAM,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;QACxD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAE,QAAgB;gBACpB,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,EAAE,GAAG,eAAe,UAAU,CAAC,CAAA;YACzE,CAAC;SACF,EAAE,oBAAoB,CAAC,CAAA;QACxB,OAAO,6BAAa,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;CACF;AA/QD,0CA+QC"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.H5WebpackPlugin = void 0;
4
+ const path = require("path");
5
+ const HtmlWebpackPlugin = require("html-webpack-plugin");
6
+ const WebpackPlugin_1 = require("./WebpackPlugin");
7
+ const H5Plugin_1 = require("../plugins/H5Plugin");
8
+ class H5WebpackPlugin {
9
+ constructor(combination) {
10
+ this.combination = combination;
11
+ }
12
+ getPlugins(isMultiRouterMode = false, pages) {
13
+ const plugins = {
14
+ definePlugin: this.getDefinePlugin(),
15
+ mainPlugin: this.getH5Plugin()
16
+ };
17
+ if (isMultiRouterMode) {
18
+ pages.forEach(page => {
19
+ plugins[page] = this.getHtmlWebpackPlugin(page);
20
+ });
21
+ }
22
+ else {
23
+ plugins.htmlWebpackPlugin = this.getHtmlWebpackPlugin();
24
+ }
25
+ const miniCssExtractPlugin = this.getMiniCssExtractPlugin();
26
+ if (miniCssExtractPlugin)
27
+ plugins.miniCssExtractPlugin = miniCssExtractPlugin;
28
+ const copyWebpackPlugin = this.getCopyWebpackPlugin();
29
+ if (copyWebpackPlugin)
30
+ plugins.copyWebpackPlugin = copyWebpackPlugin;
31
+ return plugins;
32
+ }
33
+ getDefinePlugin() {
34
+ const { env = {}, defineConstants = {} } = this.combination.config;
35
+ const envConstants = Object.keys(env).reduce((target, key) => {
36
+ target[`process.env.${key}`] = env[key];
37
+ return target;
38
+ }, {});
39
+ return WebpackPlugin_1.WebpackPlugin.getDefinePlugin([envConstants, defineConstants]);
40
+ }
41
+ getCopyWebpackPlugin() {
42
+ const { appPath, config } = this.combination;
43
+ const { copy } = config;
44
+ if (copy === null || copy === void 0 ? void 0 : copy.patterns.length) {
45
+ return WebpackPlugin_1.WebpackPlugin.getCopyWebpackPlugin(appPath, copy);
46
+ }
47
+ }
48
+ getMiniCssExtractPlugin() {
49
+ const { enableExtract = process.env.NODE_ENV === 'production', miniCssExtractPluginOption = {} } = this.combination.config;
50
+ if (!enableExtract)
51
+ return;
52
+ const args = Object.assign({
53
+ filename: 'css/[name].css',
54
+ chunkFilename: 'css/[name].css'
55
+ }, miniCssExtractPluginOption);
56
+ return WebpackPlugin_1.WebpackPlugin.getMiniCssExtractPlugin(args);
57
+ }
58
+ getHtmlWebpackPlugin(entry = '', chunks = []) {
59
+ const args = {
60
+ filename: `${entry || 'index'}.html`,
61
+ template: path.join(this.combination.sourceDir, 'index.html')
62
+ };
63
+ if (entry && entry !== 'index') {
64
+ args.chunks = [...chunks, entry];
65
+ }
66
+ return WebpackPlugin_1.WebpackPlugin.getPlugin(HtmlWebpackPlugin, [args]);
67
+ }
68
+ getH5Plugin() {
69
+ const { sourceDir, outputDir, config } = this.combination;
70
+ const { entryFileName = 'app', router = {}, useHtmlComponents = false, designWidth = 750, deviceRatio } = config;
71
+ const options = {
72
+ sourceDir,
73
+ outputDir,
74
+ framework: config.framework,
75
+ entryFileName,
76
+ routerConfig: router,
77
+ useHtmlComponents,
78
+ designWidth,
79
+ deviceRatio
80
+ };
81
+ return WebpackPlugin_1.WebpackPlugin.getPlugin(H5Plugin_1.default, [options]);
82
+ }
83
+ }
84
+ exports.H5WebpackPlugin = H5WebpackPlugin;
85
+ //# sourceMappingURL=H5WebpackPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"H5WebpackPlugin.js","sourceRoot":"","sources":["../../src/webpack/H5WebpackPlugin.ts"],"names":[],"mappings":";;;AAAA,6BAA4B;AAC5B,yDAAwD;AACxD,mDAA+C;AAC/C,kDAA0C;AAK1C,MAAa,eAAe;IAG1B,YAAa,WAA0B;QACrC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAED,UAAU,CAAE,iBAAiB,GAAG,KAAK,EAAE,KAAe;QACpD,MAAM,OAAO,GAAsD;YACjE,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;SAC/B,CAAA;QACD,IAAI,iBAAiB,EAAE;YACrB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACnB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;YACjD,CAAC,CAAC,CAAA;SACH;aAAM;YACL,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;SACxD;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAA;QAC3D,IAAI,oBAAoB;YAAE,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;QAE7E,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;QACrD,IAAI,iBAAiB;YAAE,OAAO,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;QAEpE,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,eAAe;QACb,MAAM,EACJ,GAAG,GAAG,EAAE,EACR,eAAe,GAAG,EAAE,EACrB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;QAE3B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3D,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;YACvC,OAAO,MAAM,CAAA;QACf,CAAC,EAAE,EAAE,CAAC,CAAA;QAEN,OAAO,6BAAa,CAAC,eAAe,CAAC,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAA;IACvE,CAAC;IAED,oBAAoB;QAClB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAA;QAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;QAEvB,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,MAAM,EAAE;YACzB,OAAO,6BAAa,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;SACzD;IACH,CAAC;IAED,uBAAuB;QACrB,MAAM,EACJ,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EACrD,0BAA0B,GAAG,EAAE,EAChC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,aAAa;YAAE,OAAM;QAE1B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YACzB,QAAQ,EAAE,gBAAgB;YAC1B,aAAa,EAAE,gBAAgB;SAChC,EAAE,0BAA0B,CAAC,CAAA;QAC9B,OAAO,6BAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IAED,oBAAoB,CAAE,KAAK,GAAG,EAAE,EAAE,SAAmB,EAAE;QACrD,MAAM,IAAI,GAAuC;YAC/C,QAAQ,EAAE,GAAG,KAAK,IAAI,OAAO,OAAO;YACpC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC;SAC9D,CAAA;QACD,IAAI,KAAK,IAAI,KAAK,KAAK,OAAO,EAAE;YAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAA;SACjC;QACD,OAAO,6BAAa,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,WAAW;QACT,MAAM,EACJ,SAAS,EACT,SAAS,EACT,MAAM,EACP,GAAG,IAAI,CAAC,WAAW,CAAA;QACpB,MAAM,EACJ,aAAa,GAAG,KAAK,EACrB,MAAM,GAAG,EAAE,EACX,iBAAiB,GAAG,KAAK,EACzB,WAAW,GAAG,GAAG,EACjB,WAAW,EACZ,GAAG,MAAM,CAAA;QACV,MAAM,OAAO,GAAG;YACd,SAAS;YACT,SAAS;YACT,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,aAAa;YACb,YAAY,EAAE,MAAM;YACpB,iBAAiB;YACjB,WAAW;YACX,WAAW;SACZ,CAAA;QAED,OAAO,6BAAa,CAAC,SAAS,CAAC,kBAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IACrD,CAAC;CACF;AAvGD,0CAuGC"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MiniBaseConfig = void 0;
4
+ const BaseConfig_1 = require("./BaseConfig");
5
+ class MiniBaseConfig extends BaseConfig_1.BaseConfig {
6
+ constructor(appPath, config) {
7
+ super(appPath, config);
8
+ this.defaultTerserOptions = {
9
+ parse: {
10
+ ecma: 8
11
+ },
12
+ compress: {
13
+ ecma: 5,
14
+ warnings: false,
15
+ arrows: false,
16
+ collapse_vars: false,
17
+ comparisons: false,
18
+ computed_props: false,
19
+ hoist_funs: false,
20
+ hoist_props: false,
21
+ hoist_vars: false,
22
+ inline: false,
23
+ loops: false,
24
+ negate_iife: false,
25
+ properties: false,
26
+ reduce_funcs: false,
27
+ reduce_vars: false,
28
+ switches: false,
29
+ toplevel: false,
30
+ typeofs: false,
31
+ booleans: true,
32
+ if_return: true,
33
+ sequences: true,
34
+ unused: true,
35
+ conditionals: true,
36
+ dead_code: true,
37
+ evaluate: true
38
+ },
39
+ output: {
40
+ ecma: 5,
41
+ comments: false,
42
+ ascii_only: true
43
+ }
44
+ };
45
+ this.chain.merge({
46
+ resolve: {
47
+ mainFields: ['browser', 'module', 'jsnext:main', 'main'],
48
+ alias: {
49
+ // 小程序使用 regenerator-runtime@0.11
50
+ 'regenerator-runtime': require.resolve('regenerator-runtime'),
51
+ // 开发组件库时 link 到本地调试,runtime 包需要指向本地 node_modules 顶层的 runtime,保证闭包值 Current 一致,shared 也一样
52
+ '@tarojs/runtime': require.resolve('@tarojs/runtime'),
53
+ '@tarojs/shared': require.resolve('@tarojs/shared/dist/shared.esm.js')
54
+ },
55
+ // [Webpack 4] config.node: { fs: false, path: false }
56
+ // [Webpack 5] config.resolve.fallback
57
+ fallback: {
58
+ fs: false,
59
+ path: false
60
+ }
61
+ },
62
+ optimization: {
63
+ sideEffects: true
64
+ },
65
+ performance: {
66
+ maxEntrypointSize: 2 * 1000 * 1000
67
+ }
68
+ });
69
+ this.setMinimizer(config, this.defaultTerserOptions);
70
+ }
71
+ }
72
+ exports.MiniBaseConfig = MiniBaseConfig;
73
+ //# sourceMappingURL=MiniBaseConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniBaseConfig.js","sourceRoot":"","sources":["../../src/webpack/MiniBaseConfig.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAIzC,MAAa,cAAe,SAAQ,uBAAU;IAuC5C,YAAa,OAAe,EAAE,MAAgC;QAC5D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAvCxB,yBAAoB,GAAG;YACrB,KAAK,EAAE;gBACL,IAAI,EAAE,CAAC;aACR;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,KAAK;gBACb,aAAa,EAAE,KAAK;gBACpB,WAAW,EAAE,KAAK;gBAClB,cAAc,EAAE,KAAK;gBACrB,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,KAAK;gBAClB,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,KAAK;gBAClB,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,IAAI;aACf;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,IAAI;aACjB;SACF,CAAA;QAIC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACf,OAAO,EAAE;gBACP,UAAU,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC;gBACxD,KAAK,EAAE;oBACL,iCAAiC;oBACjC,qBAAqB,EAAE,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC;oBAC7D,yFAAyF;oBACzF,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;oBACrD,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC;iBACvE;gBACD,sDAAsD;gBACtD,sCAAsC;gBACtC,QAAQ,EAAE;oBACR,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,KAAK;iBACZ;aACF;YACD,YAAY,EAAE;gBACZ,WAAW,EAAE,IAAI;aAClB;YACD,WAAW,EAAE;gBACX,iBAAiB,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;aACnC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAA;IACtD,CAAC;CACF;AApED,wCAoEC"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MiniCombination = void 0;
4
+ const helper_1 = require("@tarojs/helper");
5
+ const Combination_1 = require("./Combination");
6
+ const MiniBaseConfig_1 = require("./MiniBaseConfig");
7
+ const MiniWebpackPlugin_1 = require("./MiniWebpackPlugin");
8
+ const MiniWebpackModule_1 = require("./MiniWebpackModule");
9
+ const BuildNativePlugin_1 = require("./BuildNativePlugin");
10
+ const component_1 = require("../template/component");
11
+ class MiniCombination extends Combination_1.Combination {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.isBuildNativeComp = false;
15
+ this.isBuildPlugin = false;
16
+ this.optimizeMainPackage = {
17
+ enable: true
18
+ };
19
+ }
20
+ process(config) {
21
+ const baseConfig = new MiniBaseConfig_1.MiniBaseConfig(this.appPath, config);
22
+ const chain = this.chain = baseConfig.chain;
23
+ const { entry = {}, output = {}, mode = 'production', globalObject = 'wx', enableSourceMap = process.env.NODE_ENV !== 'production', sourceMapType = 'cheap-module-source-map', fileType = {
24
+ style: '.wxss',
25
+ config: '.json',
26
+ script: '.js',
27
+ templ: '.wxml'
28
+ },
29
+ /** special mode */
30
+ isBuildNativeComp = false, isBuildPlugin = false,
31
+ /** hooks */
32
+ modifyComponentConfig, optimizeMainPackage } = config;
33
+ this.fileType = fileType;
34
+ this.enableSourceMap = enableSourceMap;
35
+ modifyComponentConfig === null || modifyComponentConfig === void 0 ? void 0 : modifyComponentConfig(component_1.componentConfig, config);
36
+ if (isBuildNativeComp) {
37
+ this.isBuildNativeComp = true;
38
+ }
39
+ if (isBuildPlugin) {
40
+ // 编译目标 - 小程序原生插件
41
+ this.isBuildPlugin = true;
42
+ this.buildNativePlugin = BuildNativePlugin_1.BuildNativePlugin.getPlugin(this);
43
+ }
44
+ if (optimizeMainPackage) {
45
+ this.optimizeMainPackage = optimizeMainPackage;
46
+ }
47
+ const webpackEntry = this.getEntry(entry);
48
+ const webpackOutput = this.getOutput({
49
+ publicPath: '/',
50
+ globalObject,
51
+ isBuildPlugin,
52
+ output
53
+ });
54
+ const webpackPlugin = new MiniWebpackPlugin_1.MiniWebpackPlugin(this);
55
+ const webpackModule = new MiniWebpackModule_1.MiniWebpackModule(this);
56
+ chain.merge({
57
+ entry: webpackEntry,
58
+ output: webpackOutput,
59
+ mode,
60
+ devtool: this.getDevtool(enableSourceMap, sourceMapType),
61
+ resolve: {
62
+ alias: this.getAlias()
63
+ },
64
+ plugin: webpackPlugin.getPlugins(),
65
+ module: webpackModule.getModules(),
66
+ optimization: this.getOptimization()
67
+ });
68
+ }
69
+ getEntry(entry) {
70
+ return this.isBuildPlugin ? this.buildNativePlugin.entry : entry;
71
+ }
72
+ getOutput({ publicPath, globalObject, isBuildPlugin, output }) {
73
+ return Object.assign({ path: this.outputDir, publicPath, filename: '[name].js', chunkFilename: '[name].js', globalObject, enabledLibraryTypes: isBuildPlugin ? ['commonjs'] : [] }, output);
74
+ }
75
+ getAlias() {
76
+ const { alias = {}, taroComponentsPath } = this.config;
77
+ return Object.assign(Object.assign({}, alias), { [`${helper_1.taroJsComponents}$`]: taroComponentsPath || `${helper_1.taroJsComponents}/mini` });
78
+ }
79
+ getOptimization() {
80
+ const chunkPrefix = this.isBuildPlugin ? this.buildNativePlugin.chunkPrefix : '';
81
+ return {
82
+ usedExports: true,
83
+ runtimeChunk: {
84
+ name: `${chunkPrefix}runtime`
85
+ },
86
+ splitChunks: {
87
+ chunks: 'all',
88
+ maxInitialRequests: Infinity,
89
+ minSize: 0,
90
+ cacheGroups: {
91
+ default: false,
92
+ defaultVendors: false,
93
+ common: {
94
+ name: `${chunkPrefix}common`,
95
+ minChunks: 2,
96
+ priority: 1
97
+ },
98
+ vendors: {
99
+ name: `${chunkPrefix}vendors`,
100
+ minChunks: 2,
101
+ test: module => /[\\/]node_modules[\\/]/.test(module.resource),
102
+ priority: 10
103
+ },
104
+ taro: {
105
+ name: `${chunkPrefix}taro`,
106
+ test: module => /@tarojs[\\/][a-z]+/.test(module.context),
107
+ priority: 100
108
+ }
109
+ }
110
+ }
111
+ };
112
+ }
113
+ }
114
+ exports.MiniCombination = MiniCombination;
115
+ //# sourceMappingURL=MiniCombination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniCombination.js","sourceRoot":"","sources":["../../src/webpack/MiniCombination.ts"],"names":[],"mappings":"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"}