@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.
- package/README.md +3 -0
- package/dist/dependencies/TaroSingleEntryDependency.js +18 -0
- package/dist/dependencies/TaroSingleEntryDependency.js.map +1 -0
- package/dist/index.h5.js +224 -0
- package/dist/index.h5.js.map +1 -0
- package/dist/index.mini.js +69 -0
- package/dist/index.mini.js.map +1 -0
- package/dist/loaders/miniTemplateLoader.js +63 -0
- package/dist/loaders/miniTemplateLoader.js.map +1 -0
- package/dist/plugins/BuildNativePlugin.js +124 -0
- package/dist/plugins/BuildNativePlugin.js.map +1 -0
- package/dist/plugins/H5Plugin.js +91 -0
- package/dist/plugins/H5Plugin.js.map +1 -0
- package/dist/plugins/MiniPlugin.js +1027 -0
- package/dist/plugins/MiniPlugin.js.map +1 -0
- package/dist/plugins/MiniSplitChunksPlugin.js +678 -0
- package/dist/plugins/MiniSplitChunksPlugin.js.map +1 -0
- package/dist/plugins/TaroLoadChunksPlugin.js +176 -0
- package/dist/plugins/TaroLoadChunksPlugin.js.map +1 -0
- package/dist/plugins/TaroNormalModule.js +51 -0
- package/dist/plugins/TaroNormalModule.js.map +1 -0
- package/dist/plugins/TaroNormalModulesPlugin.js +63 -0
- package/dist/plugins/TaroNormalModulesPlugin.js.map +1 -0
- package/dist/plugins/TaroSingleEntryPlugin.js +26 -0
- package/dist/plugins/TaroSingleEntryPlugin.js.map +1 -0
- package/dist/plugins/WebpackBarPlugin.js +26 -0
- package/dist/plugins/WebpackBarPlugin.js.map +1 -0
- package/dist/postcss/postcss.h5.js +70 -0
- package/dist/postcss/postcss.h5.js.map +1 -0
- package/dist/postcss/postcss.mini.js +75 -0
- package/dist/postcss/postcss.mini.js.map +1 -0
- package/dist/prebundle/bundle.js +167 -0
- package/dist/prebundle/bundle.js.map +1 -0
- package/dist/prebundle/constant.js +60 -0
- package/dist/prebundle/constant.js.map +1 -0
- package/dist/prebundle/index.js +234 -0
- package/dist/prebundle/index.js.map +1 -0
- package/dist/prebundle/scanImports.js +193 -0
- package/dist/prebundle/scanImports.js.map +1 -0
- package/dist/prebundle/utils.js +170 -0
- package/dist/prebundle/utils.js.map +1 -0
- package/dist/prebundle/webpack/TaroContainerEntryModule.js +76 -0
- package/dist/prebundle/webpack/TaroContainerEntryModule.js.map +1 -0
- package/dist/prebundle/webpack/TaroContainerPlugin.js +75 -0
- package/dist/prebundle/webpack/TaroContainerPlugin.js.map +1 -0
- package/dist/prebundle/webpack/TaroContainerReferencePlugin.js +124 -0
- package/dist/prebundle/webpack/TaroContainerReferencePlugin.js.map +1 -0
- package/dist/prebundle/webpack/index.js +1 -0
- package/dist/prebundle/webpack/index.js.map +1 -0
- package/dist/prerender/prerender.js +228 -0
- package/dist/prerender/prerender.js.map +1 -0
- package/dist/template/comp.js +4 -0
- package/dist/template/component.js +10 -0
- package/dist/template/component.js.map +1 -0
- package/dist/template/custom-wrapper.js +7 -0
- package/dist/template/custom-wrapper.js.map +1 -0
- package/dist/utils/H5AppInstance.js +110 -0
- package/dist/utils/H5AppInstance.js.map +1 -0
- package/dist/utils/index.js +53 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logHelper.js +153 -0
- package/dist/utils/logHelper.js.map +1 -0
- package/dist/utils/types.js +3 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/utils/webpack.js +12 -0
- package/dist/utils/webpack.js.map +1 -0
- package/dist/webpack/BaseConfig.js +155 -0
- package/dist/webpack/BaseConfig.js.map +1 -0
- package/dist/webpack/BuildNativePlugin.js +57 -0
- package/dist/webpack/BuildNativePlugin.js.map +1 -0
- package/dist/webpack/Combination.js +69 -0
- package/dist/webpack/Combination.js.map +1 -0
- package/dist/webpack/H5BaseConfig.js +30 -0
- package/dist/webpack/H5BaseConfig.js.map +1 -0
- package/dist/webpack/H5Combination.js +106 -0
- package/dist/webpack/H5Combination.js.map +1 -0
- package/dist/webpack/H5WebpackModule.js +261 -0
- package/dist/webpack/H5WebpackModule.js.map +1 -0
- package/dist/webpack/H5WebpackPlugin.js +85 -0
- package/dist/webpack/H5WebpackPlugin.js.map +1 -0
- package/dist/webpack/MiniBaseConfig.js +73 -0
- package/dist/webpack/MiniBaseConfig.js.map +1 -0
- package/dist/webpack/MiniCombination.js +115 -0
- package/dist/webpack/MiniCombination.js.map +1 -0
- package/dist/webpack/MiniWebpackModule.js +204 -0
- package/dist/webpack/MiniWebpackModule.js.map +1 -0
- package/dist/webpack/MiniWebpackPlugin.js +154 -0
- package/dist/webpack/MiniWebpackPlugin.js.map +1 -0
- package/dist/webpack/WebpackModule.js +174 -0
- package/dist/webpack/WebpackModule.js.map +1 -0
- package/dist/webpack/WebpackPlugin.js +84 -0
- package/dist/webpack/WebpackPlugin.js.map +1 -0
- package/index.js +7 -0
- 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":"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"}
|
|
@@ -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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"}
|