@mpxjs/webpack-plugin 2.10.6-beta.5 → 2.10.6-beta.6
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/lib/index.js
CHANGED
|
@@ -48,6 +48,7 @@ const RecordFileUrlDependency = require('./dependencies/RecordFileUrlDependency'
|
|
|
48
48
|
const SplitChunksPlugin = require('webpack/lib/optimize/SplitChunksPlugin')
|
|
49
49
|
const fixRelative = require('./utils/fix-relative')
|
|
50
50
|
const parseRequest = require('./utils/parse-request')
|
|
51
|
+
const { transAsyncSubNameRules, transAsyncSubRules } = require('./utils/trans-async-sub-rules')
|
|
51
52
|
const { matchCondition } = require('./utils/match-condition')
|
|
52
53
|
const processDefs = require('./utils/process-defs')
|
|
53
54
|
const config = require('./config')
|
|
@@ -778,6 +779,7 @@ class MpxWebpackPlugin {
|
|
|
778
779
|
})
|
|
779
780
|
},
|
|
780
781
|
asyncSubpackageRules: this.options.asyncSubpackageRules,
|
|
782
|
+
asyncSubpackageNameMap: this.options.asyncSubpackageNameMap,
|
|
781
783
|
optimizeRenderRules: this.options.optimizeRenderRules,
|
|
782
784
|
pathHash: (resourcePath) => {
|
|
783
785
|
if (this.options.pathHashMode === 'relative' && this.options.projectRoot) {
|
|
@@ -1406,21 +1408,14 @@ class MpxWebpackPlugin {
|
|
|
1406
1408
|
const range = expr.arguments[0].range
|
|
1407
1409
|
const context = parser.state.module.context
|
|
1408
1410
|
const { queryObj, resourcePath } = parseRequest(request)
|
|
1409
|
-
let tarRoot = queryObj.root
|
|
1410
|
-
if (!tarRoot && mpx.asyncSubpackageRules) {
|
|
1411
|
-
for (const item of mpx.asyncSubpackageRules) {
|
|
1412
|
-
if (matchCondition(resourcePath, item)) {
|
|
1413
|
-
tarRoot = item.root
|
|
1414
|
-
break
|
|
1415
|
-
}
|
|
1416
|
-
}
|
|
1417
|
-
}
|
|
1411
|
+
let tarRoot = transAsyncSubRules(resourcePath, mpx.asyncSubpackageRules, queryObj.root)
|
|
1418
1412
|
if (tarRoot) {
|
|
1419
1413
|
// 删除root query
|
|
1420
1414
|
if (queryObj.root) request = addQuery(request, {}, false, ['root'])
|
|
1421
1415
|
// wx、ali和web平台支持require.async,其余平台使用CommonJsAsyncDependency进行模拟抹平
|
|
1422
1416
|
if (mpx.supportRequireAsync) {
|
|
1423
1417
|
if (isWeb(mpx.mode) || isReact(mpx.mode)) {
|
|
1418
|
+
tarRoot = transAsyncSubNameRules(mpx.asyncSubpackageNameMap, tarRoot)
|
|
1424
1419
|
const depBlock = new AsyncDependenciesBlock(
|
|
1425
1420
|
{
|
|
1426
1421
|
name: tarRoot + '/index'
|
package/lib/react/processJSON.js
CHANGED
|
@@ -8,6 +8,7 @@ const addQuery = require('../utils/add-query')
|
|
|
8
8
|
const parseComponent = require('../parser')
|
|
9
9
|
const getJSONContent = require('../utils/get-json-content')
|
|
10
10
|
const resolve = require('../utils/resolve')
|
|
11
|
+
const { transAsyncSubNameRules } = require('../utils/trans-async-sub-rules')
|
|
11
12
|
const createJSONHelper = require('../json-compiler/helper')
|
|
12
13
|
const getRulesRunner = require('../platform/index')
|
|
13
14
|
const { RESOLVE_IGNORED_ERR } = require('../utils/const')
|
|
@@ -285,6 +286,8 @@ module.exports = function (jsonContent, {
|
|
|
285
286
|
|
|
286
287
|
pagesMap[resourcePath] = outputPath
|
|
287
288
|
loaderContext._module && loaderContext._module.addPresentationalDependency(new RecordResourceMapDependency(resourcePath, 'page', outputPath))
|
|
289
|
+
// 通过asyncSubPackagesNameRules对tarRoot进行修改,仅修改tarRoot,不修改outputPath页面路径
|
|
290
|
+
tarRoot = transAsyncSubNameRules(mpx.asyncSubpackageNameMap, tarRoot)
|
|
288
291
|
localPagesMap[outputPath] = {
|
|
289
292
|
resource: addQuery(resource, { isPage: true }),
|
|
290
293
|
async: queryObj.async || tarRoot,
|
|
@@ -332,6 +335,7 @@ module.exports = function (jsonContent, {
|
|
|
332
335
|
const fillComponentsMap = (name, entry, tarRoot) => {
|
|
333
336
|
const { resource, outputPath } = entry
|
|
334
337
|
const { resourcePath, queryObj } = parseRequest(resource)
|
|
338
|
+
tarRoot = transAsyncSubNameRules(mpx.asyncSubpackageNameMap, tarRoot)
|
|
335
339
|
componentsMap[resourcePath] = outputPath
|
|
336
340
|
loaderContext._module && loaderContext._module.addPresentationalDependency(new RecordResourceMapDependency(resourcePath, 'component', outputPath))
|
|
337
341
|
localComponentsMap[name] = {
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const { matchCondition } = require('./match-condition')
|
|
2
|
+
|
|
3
|
+
function transAsyncSubNameRules (asyncSubpackageNameRules, tarRoot) {
|
|
4
|
+
// 如果没有tarRoot,则无需进行tarRoot的修改,因此
|
|
5
|
+
if (tarRoot && Array.isArray(asyncSubpackageNameRules) && asyncSubpackageNameRules.length >= 1) {
|
|
6
|
+
for (const item of asyncSubpackageNameRules) {
|
|
7
|
+
if (item?.from) {
|
|
8
|
+
const fromPaths = Array.isArray(item.from) ? item.from : [item.from];
|
|
9
|
+
if (fromPaths.includes(tarRoot)) {
|
|
10
|
+
tarRoot = item.to
|
|
11
|
+
break
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return tarRoot
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function transAsyncSubRules (resourcePath, asyncSubpackageRules, tarRoot) {
|
|
20
|
+
if (!tarRoot && Array.isArray(asyncSubpackageRules) && asyncSubpackageRules.length >= 1) {
|
|
21
|
+
for (const item of asyncSubpackageRules) {
|
|
22
|
+
if (matchCondition(resourcePath, item)) {
|
|
23
|
+
tarRoot = item.root
|
|
24
|
+
break
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return tarRoot
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = {
|
|
32
|
+
transAsyncSubNameRules,
|
|
33
|
+
transAsyncSubRules
|
|
34
|
+
}
|