@tarojs/webpack5-runner 3.7.0-alpha.7 → 3.7.0-alpha.8
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/dist/index.h5.js +4 -1
- package/dist/index.h5.js.map +1 -1
- package/dist/plugins/H5Plugin.js +1 -6
- package/dist/plugins/H5Plugin.js.map +1 -1
- package/dist/plugins/MiniPlugin.js +185 -15
- package/dist/plugins/MiniPlugin.js.map +1 -1
- package/dist/plugins/MiniSplitChunksPlugin.js +89 -89
- package/dist/plugins/MiniSplitChunksPlugin.js.map +1 -1
- package/dist/plugins/TaroNormalModule.js +76 -1
- package/dist/plugins/TaroNormalModule.js.map +1 -1
- package/dist/plugins/TaroNormalModulesPlugin.js +61 -13
- package/dist/plugins/TaroNormalModulesPlugin.js.map +1 -1
- package/dist/utils/component.js +4 -1
- package/dist/utils/component.js.map +1 -1
- package/dist/webpack/Combination.js +10 -7
- package/dist/webpack/Combination.js.map +1 -1
- package/dist/webpack/H5Combination.js +0 -1
- package/dist/webpack/H5Combination.js.map +1 -1
- package/dist/webpack/MiniCombination.js +0 -1
- package/dist/webpack/MiniCombination.js.map +1 -1
- package/dist/webpack/MiniWebpackModule.js +2 -2
- package/dist/webpack/MiniWebpackModule.js.map +1 -1
- package/dist/webpack/MiniWebpackPlugin.js +3 -1
- package/dist/webpack/MiniWebpackPlugin.js.map +1 -1
- package/dist/webpack/WebpackModule.js +3 -0
- package/dist/webpack/WebpackModule.js.map +1 -1
- package/package.json +19 -19
package/dist/index.h5.js
CHANGED
|
@@ -41,8 +41,9 @@ function build(appPath, rawConfig) {
|
|
|
41
41
|
const combination = new H5Combination_1.H5Combination(appPath, rawConfig);
|
|
42
42
|
yield combination.make();
|
|
43
43
|
const { chunkDirectory = 'chunk', devServer, enableSourceMap, entryFileName = 'app', entry = {}, publicPath } = combination.config;
|
|
44
|
+
let prebundle = null;
|
|
44
45
|
if (!combination.isBuildNativeComp) {
|
|
45
|
-
|
|
46
|
+
prebundle = new webpack5_prebundle_1.default({
|
|
46
47
|
appPath,
|
|
47
48
|
sourceRoot: combination.sourceRoot,
|
|
48
49
|
chain: combination.chain,
|
|
@@ -68,6 +69,7 @@ function build(appPath, rawConfig) {
|
|
|
68
69
|
try {
|
|
69
70
|
if (!isWatch) {
|
|
70
71
|
const compiler = (0, webpack_1.default)(webpackConfig);
|
|
72
|
+
prebundle === null || prebundle === void 0 ? void 0 : prebundle.postCompilerStart(compiler);
|
|
71
73
|
compiler.hooks.emit.tapAsync('taroBuildDone', (compilation, callback) => __awaiter(this, void 0, void 0, function* () {
|
|
72
74
|
if ((0, shared_1.isFunction)(config.modifyBuildAssets)) {
|
|
73
75
|
yield config.modifyBuildAssets(compilation.assets);
|
|
@@ -109,6 +111,7 @@ function build(appPath, rawConfig) {
|
|
|
109
111
|
}
|
|
110
112
|
const compiler = (0, webpack_1.default)(webpackConfig);
|
|
111
113
|
const server = new webpack_dev_server_1.default(webpackConfig.devServer, compiler);
|
|
114
|
+
prebundle === null || prebundle === void 0 ? void 0 : prebundle.postCompilerStart(compiler);
|
|
112
115
|
(0, logHelper_1.bindDevLogger)(compiler, devUrl);
|
|
113
116
|
compiler.hooks.emit.tapAsync('taroBuildDone', (compilation, callback) => __awaiter(this, void 0, void 0, function* () {
|
|
114
117
|
if ((0, shared_1.isFunction)(config.modifyBuildAssets)) {
|
package/dist/index.h5.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.h5.js","sourceRoot":"","sources":["../src/index.h5.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAkE;AAClE,2CAA2C;AAC3C,oFAAkD;AAClD,8DAAoC;AACpC,gDAAuB;AACvB,6BAAyC;AACzC,sDAA6B;AAC7B,4EAAiD;AAEjD,mCAA4H;AAC5H,sDAAmC;AACnC,iDAAkF;AAClF,2DAAuD;AAKvD,SAA8B,KAAK,CAAE,OAAe,EAAE,SAAwB;;;QAC5E,MAAM,WAAW,GAAG,IAAI,6BAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACzD,MAAM,WAAW,CAAC,IAAI,EAAE,CAAA;QAExB,MAAM,EAAE,cAAc,GAAG,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,GAAG,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,MAAM,CAAA;QAClI,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE;YAClC,
|
|
1
|
+
{"version":3,"file":"index.h5.js","sourceRoot":"","sources":["../src/index.h5.ts"],"names":[],"mappings":"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"}
|
package/dist/plugins/H5Plugin.js
CHANGED
|
@@ -13,7 +13,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
const helper_1 = require("@tarojs/helper");
|
|
16
|
-
const web_1 = require("@tarojs/webpack5-prebundle/dist/web");
|
|
17
16
|
const lodash_1 = require("lodash");
|
|
18
17
|
const path_1 = __importDefault(require("path"));
|
|
19
18
|
const app_1 = __importDefault(require("../utils/app"));
|
|
@@ -66,7 +65,7 @@ class TaroH5Plugin {
|
|
|
66
65
|
})));
|
|
67
66
|
compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => {
|
|
68
67
|
compiler.webpack.NormalModule.getCompilationHooks(compilation).loader.tap(PLUGIN_NAME, (_loaderContext, module) => {
|
|
69
|
-
const { entryFileName,
|
|
68
|
+
const { entryFileName, sourceDir, prebundle, routerConfig, isBuildNativeComp } = this.options;
|
|
70
69
|
const { dir, name } = path_1.default.parse(module.resource);
|
|
71
70
|
const suffixRgx = /\.(boot|config)/;
|
|
72
71
|
if (!suffixRgx.test(name))
|
|
@@ -80,10 +79,6 @@ class TaroH5Plugin {
|
|
|
80
79
|
if (isBuildNativeComp
|
|
81
80
|
? this.appHelper.compsConfigList.has(pageName)
|
|
82
81
|
: (isApp || this.appHelper.pagesConfigList.has(pageName.split(path_1.default.sep).join('/')))) {
|
|
83
|
-
if (bootstrap) {
|
|
84
|
-
const bootPath = path_1.default.relative(appPath, path_1.default.join(sourceDir, `${isMultiRouterMode ? pageName : entryFileName}.boot.js`));
|
|
85
|
-
web_1.VirtualModule.writeModule(bootPath, '/** bootstrap application code */');
|
|
86
|
-
}
|
|
87
82
|
// 把 Map 转换为数组后传递,避免 thread-loader 传递 Map 时变为空对象的问题,fix #13430
|
|
88
83
|
const pagesConfigList = [];
|
|
89
84
|
for (const item of this.appHelper.pagesConfigList.entries()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"H5Plugin.js","sourceRoot":"","sources":["../../src/plugins/H5Plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,2CAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"H5Plugin.js","sourceRoot":"","sources":["../../src/plugins/H5Plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,9 +19,12 @@ const EntryDependency_1 = __importDefault(require("webpack/lib/dependencies/Entr
|
|
|
19
19
|
const TaroSingleEntryDependency_1 = __importDefault(require("../dependencies/TaroSingleEntryDependency"));
|
|
20
20
|
const prerender_1 = require("../prerender/prerender");
|
|
21
21
|
const component_1 = require("../utils/component");
|
|
22
|
+
const webpack_1 = require("../utils/webpack");
|
|
22
23
|
const TaroLoadChunksPlugin_1 = __importDefault(require("./TaroLoadChunksPlugin"));
|
|
23
24
|
const TaroNormalModulesPlugin_1 = __importDefault(require("./TaroNormalModulesPlugin"));
|
|
24
25
|
const TaroSingleEntryPlugin_1 = __importDefault(require("./TaroSingleEntryPlugin"));
|
|
26
|
+
const baseCompName = 'comp';
|
|
27
|
+
const customWrapperName = 'custom-wrapper';
|
|
25
28
|
const PLUGIN_NAME = 'TaroMiniPlugin';
|
|
26
29
|
function isLoaderExist(loaders, loaderName) {
|
|
27
30
|
return loaders.some(item => item.loader === loaderName);
|
|
@@ -34,6 +37,8 @@ class TaroMiniPlugin {
|
|
|
34
37
|
/** 页面列表 */
|
|
35
38
|
this.pages = new Set();
|
|
36
39
|
this.components = new Set();
|
|
40
|
+
/** 新的混合原生编译模式 newBlended 模式下,需要单独编译成原生代码的 component 的Map */
|
|
41
|
+
this.nativeComponents = new Map();
|
|
37
42
|
/** tabbar icon 图片路径列表 */
|
|
38
43
|
this.tabBarIcons = new Set();
|
|
39
44
|
this.dependencies = new Map();
|
|
@@ -80,7 +85,7 @@ class TaroMiniPlugin {
|
|
|
80
85
|
apply(compiler) {
|
|
81
86
|
this.context = compiler.context;
|
|
82
87
|
this.appEntry = this.getAppEntry(compiler);
|
|
83
|
-
const { commonChunks, addChunkPages, framework, isBuildPlugin } = this.options;
|
|
88
|
+
const { commonChunks, addChunkPages, framework, isBuildPlugin, newBlended, } = this.options;
|
|
84
89
|
/** build mode */
|
|
85
90
|
compiler.hooks.run.tapAsync(PLUGIN_NAME, this.tryAsync((compiler) => __awaiter(this, void 0, void 0, function* () {
|
|
86
91
|
yield this.run(compiler);
|
|
@@ -146,6 +151,7 @@ class TaroMiniPlugin {
|
|
|
146
151
|
config: this.appConfig,
|
|
147
152
|
runtimePath: this.options.runtimePath,
|
|
148
153
|
blended: this.options.blended,
|
|
154
|
+
newBlended: this.options.newBlended,
|
|
149
155
|
pxTransformConfig
|
|
150
156
|
}
|
|
151
157
|
});
|
|
@@ -158,13 +164,19 @@ class TaroMiniPlugin {
|
|
|
158
164
|
isIndependent = true;
|
|
159
165
|
}
|
|
160
166
|
});
|
|
161
|
-
const
|
|
167
|
+
const isNewBlended = this.nativeComponents.has(module.name);
|
|
168
|
+
const loaderName = (isNewBlended || isBuildPlugin)
|
|
169
|
+
? '@tarojs/taro-loader/lib/native-component'
|
|
170
|
+
: (isIndependent
|
|
171
|
+
? '@tarojs/taro-loader/lib/independentPage'
|
|
172
|
+
: this.pageLoaderName);
|
|
162
173
|
if (!isLoaderExist(module.loaders, loaderName)) {
|
|
163
174
|
module.loaders.unshift({
|
|
164
175
|
loader: loaderName,
|
|
165
176
|
options: {
|
|
166
177
|
framework,
|
|
167
178
|
loaderMeta,
|
|
179
|
+
isNewBlended,
|
|
168
180
|
name: module.name,
|
|
169
181
|
prerender: this.prerenderPages.has(module.name),
|
|
170
182
|
config: this.filesConfig,
|
|
@@ -191,7 +203,7 @@ class TaroMiniPlugin {
|
|
|
191
203
|
}
|
|
192
204
|
}
|
|
193
205
|
});
|
|
194
|
-
const { PROCESS_ASSETS_STAGE_ADDITIONAL, PROCESS_ASSETS_STAGE_OPTIMIZE } = compiler.webpack.Compilation;
|
|
206
|
+
const { PROCESS_ASSETS_STAGE_ADDITIONAL, PROCESS_ASSETS_STAGE_OPTIMIZE, PROCESS_ASSETS_STAGE_REPORT } = compiler.webpack.Compilation;
|
|
195
207
|
compilation.hooks.processAssets.tapAsync({
|
|
196
208
|
name: PLUGIN_NAME,
|
|
197
209
|
stage: PROCESS_ASSETS_STAGE_ADDITIONAL
|
|
@@ -206,11 +218,72 @@ class TaroMiniPlugin {
|
|
|
206
218
|
}, this.tryAsync(() => __awaiter(this, void 0, void 0, function* () {
|
|
207
219
|
yield this.optimizeMiniFiles(compilation, compiler);
|
|
208
220
|
})));
|
|
221
|
+
compilation.hooks.processAssets.tapAsync({
|
|
222
|
+
name: PLUGIN_NAME,
|
|
223
|
+
// 该 stage 是最后执行的,确保 taro 暴露给用户的钩子 modifyBuildAssets 在内部处理完 assets 之后再调用
|
|
224
|
+
stage: PROCESS_ASSETS_STAGE_REPORT
|
|
225
|
+
}, this.tryAsync(() => __awaiter(this, void 0, void 0, function* () {
|
|
226
|
+
const { modifyBuildAssets } = this.options;
|
|
227
|
+
if (typeof modifyBuildAssets === 'function') {
|
|
228
|
+
yield modifyBuildAssets(compilation.assets, this);
|
|
229
|
+
}
|
|
230
|
+
})));
|
|
209
231
|
});
|
|
210
232
|
compiler.hooks.afterEmit.tapAsync(PLUGIN_NAME, this.tryAsync((compilation) => __awaiter(this, void 0, void 0, function* () {
|
|
211
233
|
yield this.addTarBarFilesToDependencies(compilation);
|
|
212
234
|
})));
|
|
213
235
|
new TaroNormalModulesPlugin_1.default(this.options.onParseCreateElement).apply(compiler);
|
|
236
|
+
newBlended && this.addLoadChunksPlugin(compiler);
|
|
237
|
+
}
|
|
238
|
+
addLoadChunksPlugin(compiler) {
|
|
239
|
+
const fileChunks = new Map();
|
|
240
|
+
compiler.hooks.thisCompilation.tap(PLUGIN_NAME, compilation => {
|
|
241
|
+
compilation.hooks.afterOptimizeChunks.tap(PLUGIN_NAME, chunks => {
|
|
242
|
+
for (const chunk of chunks) {
|
|
243
|
+
const id = (0, webpack_1.getChunkIdOrName)(chunk);
|
|
244
|
+
if (this.options.commonChunks.includes(id))
|
|
245
|
+
return;
|
|
246
|
+
const deps = [];
|
|
247
|
+
for (const group of chunk.groupsIterable) {
|
|
248
|
+
group.chunks.forEach(chunk => {
|
|
249
|
+
const currentChunkId = (0, webpack_1.getChunkIdOrName)(chunk);
|
|
250
|
+
if (id === currentChunkId)
|
|
251
|
+
return;
|
|
252
|
+
deps.push({
|
|
253
|
+
name: currentChunkId
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
fileChunks.set(id, deps);
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
compiler.webpack.javascript.JavascriptModulesPlugin.getCompilationHooks(compilation).render.tap(PLUGIN_NAME, (modules, { chunk }) => {
|
|
261
|
+
var _a;
|
|
262
|
+
const chunkEntryModule = (0, webpack_1.getChunkEntryModule)(compilation, chunk);
|
|
263
|
+
if (!chunkEntryModule)
|
|
264
|
+
return;
|
|
265
|
+
const entryModule = (_a = chunkEntryModule.rootModule) !== null && _a !== void 0 ? _a : chunkEntryModule;
|
|
266
|
+
// addChunkPages
|
|
267
|
+
if (fileChunks.size) {
|
|
268
|
+
let source;
|
|
269
|
+
const id = (0, webpack_1.getChunkIdOrName)(chunk);
|
|
270
|
+
const { miniType } = entryModule;
|
|
271
|
+
const entryChunk = [{ name: 'app' }];
|
|
272
|
+
// 所有模块都依赖app.js,确保@tarojs\plugin-platform-xxx\dist\runtime.js先于@tarojs/runtime执行,避免Taro API未被初始化
|
|
273
|
+
if (this.nativeComponents.has(id) || miniType === helper_1.META_TYPE.STATIC) {
|
|
274
|
+
fileChunks.forEach((v, k) => {
|
|
275
|
+
if (k === id) {
|
|
276
|
+
source = (0, webpack_1.addRequireToSource)(id, modules, v);
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
return source;
|
|
280
|
+
}
|
|
281
|
+
else if (miniType === helper_1.META_TYPE.PAGE) {
|
|
282
|
+
return (0, webpack_1.addRequireToSource)(id, modules, entryChunk);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
});
|
|
214
287
|
}
|
|
215
288
|
/**
|
|
216
289
|
* 根据 webpack entry 配置获取入口文件路径
|
|
@@ -373,9 +446,14 @@ class TaroMiniPlugin {
|
|
|
373
446
|
if (main) {
|
|
374
447
|
pluginJSON.main = this.getTargetFilePath(main, '.js');
|
|
375
448
|
}
|
|
376
|
-
if (
|
|
449
|
+
if (!this.options.template.isSupportRecursive) {
|
|
450
|
+
pluginJSON.publicComponents = Object.assign({}, publicComponents, {
|
|
451
|
+
[baseCompName]: baseCompName
|
|
452
|
+
});
|
|
453
|
+
}
|
|
454
|
+
if (isUsingCustomWrapper) {
|
|
377
455
|
pluginJSON.publicComponents = Object.assign({}, publicComponents, {
|
|
378
|
-
|
|
456
|
+
[customWrapperName]: customWrapperName
|
|
379
457
|
});
|
|
380
458
|
}
|
|
381
459
|
}
|
|
@@ -403,6 +481,7 @@ class TaroMiniPlugin {
|
|
|
403
481
|
*/
|
|
404
482
|
getPages() {
|
|
405
483
|
var _a;
|
|
484
|
+
const { newBlended } = this.options;
|
|
406
485
|
if ((0, helper_1.isEmptyObject)(this.appConfig)) {
|
|
407
486
|
throw new Error('缺少 app 全局配置文件,请检查!');
|
|
408
487
|
}
|
|
@@ -431,6 +510,30 @@ class TaroMiniPlugin {
|
|
|
431
510
|
})
|
|
432
511
|
]);
|
|
433
512
|
this.getSubPackages(this.appConfig);
|
|
513
|
+
// 新的混合原生编译模式 newBlended 下,需要收集独立编译为原生自定义组件
|
|
514
|
+
newBlended && this.getNativeComponent();
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* 收集需要转换为本地化组件的内容
|
|
518
|
+
*/
|
|
519
|
+
getNativeComponent() {
|
|
520
|
+
const { frameworkExts } = this.options;
|
|
521
|
+
const components = this.appConfig.components || [];
|
|
522
|
+
components.forEach(item => {
|
|
523
|
+
var _a;
|
|
524
|
+
const pagePath = (0, helper_1.resolveMainFilePath)(path_1.default.join(this.options.sourceDir, item), frameworkExts);
|
|
525
|
+
const componentObj = {
|
|
526
|
+
name: item,
|
|
527
|
+
path: pagePath,
|
|
528
|
+
isNative: false,
|
|
529
|
+
};
|
|
530
|
+
if (!this.isWatch && ((_a = this.options.logger) === null || _a === void 0 ? void 0 : _a.quiet) === false) {
|
|
531
|
+
(0, helper_1.printLog)("compile" /* processTypeEnum.COMPILE */, `发现[${item}]Native组件`);
|
|
532
|
+
}
|
|
533
|
+
this.pages.add(componentObj);
|
|
534
|
+
// 登记需要编译成原生版本的组件
|
|
535
|
+
this.nativeComponents.set(item, componentObj);
|
|
536
|
+
});
|
|
434
537
|
}
|
|
435
538
|
/**
|
|
436
539
|
* 读取页面及其依赖的组件的配置
|
|
@@ -534,7 +637,17 @@ class TaroMiniPlugin {
|
|
|
534
637
|
const filePath = file.path;
|
|
535
638
|
const fileConfigPath = file.isNative ? this.replaceExt(filePath, '.json') : this.getConfigFilePath(filePath);
|
|
536
639
|
const fileConfig = (0, helper_1.readConfig)(fileConfigPath);
|
|
640
|
+
const { componentGenerics } = fileConfig;
|
|
537
641
|
const usingComponents = fileConfig.usingComponents;
|
|
642
|
+
if (this.options.isBuildPlugin && componentGenerics) {
|
|
643
|
+
Object.keys(componentGenerics).forEach(component => {
|
|
644
|
+
if (componentGenerics[component]) {
|
|
645
|
+
if (!component_1.componentConfig.thirdPartyComponents.has(component)) {
|
|
646
|
+
component_1.componentConfig.thirdPartyComponents.set(component, new Set());
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
});
|
|
650
|
+
}
|
|
538
651
|
// 递归收集依赖的第三方组件
|
|
539
652
|
if (usingComponents) {
|
|
540
653
|
const componentNames = Object.keys(usingComponents);
|
|
@@ -546,6 +659,17 @@ class TaroMiniPlugin {
|
|
|
546
659
|
compPath = (0, helper_1.replaceAliasPath)(filePath, compPath, alias);
|
|
547
660
|
fileConfig.usingComponents[compName] = compPath;
|
|
548
661
|
}
|
|
662
|
+
// 判断是否为第三方依赖的正则,如果 test 为 false 则为第三方依赖
|
|
663
|
+
const notNpmPkgReg = /^[.\\/]/;
|
|
664
|
+
if (!this.options.skipProcessUsingComponents
|
|
665
|
+
&& !compPath.startsWith('plugin://')
|
|
666
|
+
&& !notNpmPkgReg.test(compPath)) {
|
|
667
|
+
const tempCompPath = (0, helper_1.getNpmPackageAbsolutePath)(compPath);
|
|
668
|
+
if (tempCompPath) {
|
|
669
|
+
compPath = tempCompPath;
|
|
670
|
+
fileConfig.usingComponents[compName] = compPath;
|
|
671
|
+
}
|
|
672
|
+
}
|
|
549
673
|
depComponents.push({
|
|
550
674
|
name: compName,
|
|
551
675
|
path: compPath
|
|
@@ -558,6 +682,9 @@ class TaroMiniPlugin {
|
|
|
558
682
|
const componentPath = (0, helper_1.resolveMainFilePath)(path_1.default.resolve(path_1.default.dirname(file.path), item.path));
|
|
559
683
|
if (helper_1.fs.existsSync(componentPath) && !Array.from(this.components).some(item => item.path === componentPath)) {
|
|
560
684
|
const componentName = this.getComponentName(componentPath);
|
|
685
|
+
// newBlended 模式下,本地化组件使用Page进行处理,此处直接跳过
|
|
686
|
+
if (this.nativeComponents.has(componentName))
|
|
687
|
+
return;
|
|
561
688
|
const componentTempPath = this.getTemplatePath(componentPath);
|
|
562
689
|
const isNative = this.isNativePageORComponent(componentTempPath);
|
|
563
690
|
const componentObj = {
|
|
@@ -763,14 +890,26 @@ class TaroMiniPlugin {
|
|
|
763
890
|
getShowPath(filePath) {
|
|
764
891
|
return filePath.replace(this.context, '').replace(/\\/g, '/').replace(/^\//, '');
|
|
765
892
|
}
|
|
893
|
+
// 调整 config 文件中 usingComponents 的路径
|
|
894
|
+
// 1. 将 node_modules 调整为 npm
|
|
895
|
+
// 2. 将 ../../../node_modules/xxx 调整为 /npm/xxx
|
|
896
|
+
adjustConfigContent(config) {
|
|
897
|
+
const { usingComponents } = config;
|
|
898
|
+
if (!usingComponents || this.options.skipProcessUsingComponents)
|
|
899
|
+
return;
|
|
900
|
+
for (const [key, value] of Object.entries(usingComponents)) {
|
|
901
|
+
if (!value.includes(helper_1.NODE_MODULES))
|
|
902
|
+
return;
|
|
903
|
+
const match = value.replace(helper_1.NODE_MODULES, 'npm').match(/npm.*/);
|
|
904
|
+
usingComponents[key] = match ? `${path_1.default.sep}${match[0]}` : value;
|
|
905
|
+
}
|
|
906
|
+
}
|
|
766
907
|
/** 生成小程序相关文件 */
|
|
767
908
|
generateMiniFiles(compilation, compiler) {
|
|
768
909
|
return __awaiter(this, void 0, void 0, function* () {
|
|
769
910
|
const { RawSource } = compiler.webpack.sources;
|
|
770
|
-
const { template,
|
|
911
|
+
const { template, modifyMiniConfigs, isBuildPlugin, sourceDir } = this.options;
|
|
771
912
|
const baseTemplateName = this.getIsBuildPluginPath('base', isBuildPlugin);
|
|
772
|
-
const baseCompName = 'comp';
|
|
773
|
-
const customWrapperName = 'custom-wrapper';
|
|
774
913
|
const isUsingCustomWrapper = component_1.componentConfig.thirdPartyComponents.has('custom-wrapper');
|
|
775
914
|
/**
|
|
776
915
|
* 与原生小程序混写时解析模板与样式
|
|
@@ -786,7 +925,7 @@ class TaroMiniPlugin {
|
|
|
786
925
|
if (typeof modifyMiniConfigs === 'function') {
|
|
787
926
|
yield modifyMiniConfigs(this.filesConfig);
|
|
788
927
|
}
|
|
789
|
-
if (!this.options.blended && !isBuildPlugin) {
|
|
928
|
+
if ((!this.options.blended || !this.options.newBlended) && !isBuildPlugin) {
|
|
790
929
|
const appConfigPath = this.getConfigFilePath(this.appEntry);
|
|
791
930
|
const appConfigName = path_1.default.basename(appConfigPath).replace(path_1.default.extname(appConfigPath), '');
|
|
792
931
|
this.generateConfigFile(compilation, compiler, this.appEntry, this.filesConfig[appConfigName].content);
|
|
@@ -801,7 +940,7 @@ class TaroMiniPlugin {
|
|
|
801
940
|
}
|
|
802
941
|
};
|
|
803
942
|
if (isUsingCustomWrapper) {
|
|
804
|
-
baseCompConfig[customWrapperName] = `./${customWrapperName}`;
|
|
943
|
+
baseCompConfig.usingComponents[customWrapperName] = `./${customWrapperName}`;
|
|
805
944
|
this.generateConfigFile(compilation, compiler, this.getIsBuildPluginPath(customWrapperName, isBuildPlugin), {
|
|
806
945
|
component: true,
|
|
807
946
|
usingComponents: {
|
|
@@ -904,9 +1043,6 @@ class TaroMiniPlugin {
|
|
|
904
1043
|
compilation.assets[relativePath] = new RawSource(JSON.stringify(pluginJSON));
|
|
905
1044
|
}
|
|
906
1045
|
}
|
|
907
|
-
if (typeof modifyBuildAssets === 'function') {
|
|
908
|
-
yield modifyBuildAssets(compilation.assets, this);
|
|
909
|
-
}
|
|
910
1046
|
});
|
|
911
1047
|
}
|
|
912
1048
|
optimizeMiniFiles(compilation, _compiler) {
|
|
@@ -933,10 +1069,11 @@ class TaroMiniPlugin {
|
|
|
933
1069
|
generateConfigFile(compilation, compiler, filePath, config) {
|
|
934
1070
|
const { RawSource } = compiler.webpack.sources;
|
|
935
1071
|
const fileConfigName = this.getConfigPath(this.getComponentName(filePath));
|
|
936
|
-
const
|
|
937
|
-
|
|
1072
|
+
const unOfficialConfigs = ['enableShareAppMessage', 'enableShareTimeline', 'components'];
|
|
1073
|
+
unOfficialConfigs.forEach(item => {
|
|
938
1074
|
delete config[item];
|
|
939
1075
|
});
|
|
1076
|
+
this.adjustConfigContent(config);
|
|
940
1077
|
const fileConfigStr = JSON.stringify(config);
|
|
941
1078
|
compilation.assets[fileConfigName] = new RawSource(fileConfigStr);
|
|
942
1079
|
}
|
|
@@ -1036,17 +1173,20 @@ class TaroMiniPlugin {
|
|
|
1036
1173
|
* 小程序全局样式文件中引入 common chunks 中的公共样式文件
|
|
1037
1174
|
*/
|
|
1038
1175
|
injectCommonStyles({ assets }, { webpack }) {
|
|
1176
|
+
const { newBlended } = this.options;
|
|
1039
1177
|
const { ConcatSource, RawSource } = webpack.sources;
|
|
1040
1178
|
const styleExt = this.options.fileType.style;
|
|
1041
1179
|
const appStyle = `app${styleExt}`;
|
|
1042
1180
|
const REG_STYLE_EXT = new RegExp(`\\.(${styleExt.replace('.', '')})(\\?.*)?$`);
|
|
1043
1181
|
const originSource = assets[appStyle] || new RawSource('');
|
|
1044
1182
|
const commons = new ConcatSource('');
|
|
1183
|
+
const componentCommons = [];
|
|
1045
1184
|
Object.keys(assets).forEach(assetName => {
|
|
1046
1185
|
const fileName = path_1.default.basename(assetName, path_1.default.extname(assetName));
|
|
1047
1186
|
if ((helper_1.REG_STYLE.test(assetName) || REG_STYLE_EXT.test(assetName)) && this.options.commonChunks.includes(fileName)) {
|
|
1048
1187
|
commons.add('\n');
|
|
1049
1188
|
commons.add(`@import ${JSON.stringify((0, loader_utils_1.urlToRequest)(assetName))};`);
|
|
1189
|
+
componentCommons.push(assetName);
|
|
1050
1190
|
}
|
|
1051
1191
|
});
|
|
1052
1192
|
if (commons.size() > 0) {
|
|
@@ -1057,6 +1197,36 @@ class TaroMiniPlugin {
|
|
|
1057
1197
|
source.add(commons);
|
|
1058
1198
|
source.add('\n');
|
|
1059
1199
|
assets[appStyle] = source;
|
|
1200
|
+
if (newBlended) {
|
|
1201
|
+
// 本地化组件引入common公共样式文件
|
|
1202
|
+
this.pages.forEach(page => {
|
|
1203
|
+
if (page.isNative)
|
|
1204
|
+
return;
|
|
1205
|
+
const pageStyle = `${page.name}${styleExt}`;
|
|
1206
|
+
if (this.nativeComponents.has(page.name)) {
|
|
1207
|
+
// 本地化组件如果没有wxss则直接写入一个空的
|
|
1208
|
+
if (!(pageStyle in assets)) {
|
|
1209
|
+
assets[pageStyle] = new ConcatSource('');
|
|
1210
|
+
}
|
|
1211
|
+
const source = new ConcatSource('');
|
|
1212
|
+
const originSource = assets[pageStyle];
|
|
1213
|
+
componentCommons.forEach(item => {
|
|
1214
|
+
source.add(`@import ${JSON.stringify((0, loader_utils_1.urlToRequest)(path_1.default.relative(path_1.default.dirname(pageStyle), item)))};\n`);
|
|
1215
|
+
});
|
|
1216
|
+
source.add(originSource);
|
|
1217
|
+
assets[pageStyle] = source;
|
|
1218
|
+
}
|
|
1219
|
+
else {
|
|
1220
|
+
if (pageStyle in assets) {
|
|
1221
|
+
const source = new ConcatSource('');
|
|
1222
|
+
const originSource = assets[pageStyle];
|
|
1223
|
+
source.add(`@import ${JSON.stringify((0, loader_utils_1.urlToRequest)(path_1.default.relative(path_1.default.dirname(pageStyle), 'app.wxss')))};\n`);
|
|
1224
|
+
source.add(originSource);
|
|
1225
|
+
assets[pageStyle] = source;
|
|
1226
|
+
}
|
|
1227
|
+
}
|
|
1228
|
+
});
|
|
1229
|
+
}
|
|
1060
1230
|
}
|
|
1061
1231
|
}
|
|
1062
1232
|
addTarBarFilesToDependencies(compilation) {
|