@mpxjs/webpack-plugin 2.8.42 → 2.8.43
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
|
@@ -167,6 +167,7 @@ class MpxWebpackPlugin {
|
|
|
167
167
|
}, options.nativeConfig)
|
|
168
168
|
options.webConfig = options.webConfig || {}
|
|
169
169
|
options.partialCompile = options.mode !== 'web' && options.partialCompile
|
|
170
|
+
options.asyncSubpackageRules = options.asyncSubpackageRules || null
|
|
170
171
|
options.retryRequireAsync = options.retryRequireAsync || false
|
|
171
172
|
options.enableAliRequireAsync = options.enableAliRequireAsync || false
|
|
172
173
|
this.options = options
|
|
@@ -622,6 +623,7 @@ class MpxWebpackPlugin {
|
|
|
622
623
|
forceProxyEventRules: this.options.forceProxyEventRules,
|
|
623
624
|
enableRequireAsync: this.options.mode === 'wx' || (this.options.mode === 'ali' && this.options.enableAliRequireAsync),
|
|
624
625
|
partialCompile: this.options.partialCompile,
|
|
626
|
+
asyncSubpackageRules: this.options.asyncSubpackageRules,
|
|
625
627
|
pathHash: (resourcePath) => {
|
|
626
628
|
if (this.options.pathHashMode === 'relative' && this.options.projectRoot) {
|
|
627
629
|
return hash(path.relative(this.options.projectRoot, resourcePath))
|
|
@@ -1026,13 +1028,22 @@ class MpxWebpackPlugin {
|
|
|
1026
1028
|
let request = expr.arguments[0].value
|
|
1027
1029
|
const range = expr.arguments[0].range
|
|
1028
1030
|
const context = parser.state.module.context
|
|
1029
|
-
const { queryObj } = parseRequest(request)
|
|
1030
|
-
|
|
1031
|
+
const { queryObj, resourcePath } = parseRequest(request)
|
|
1032
|
+
let tarRoot = queryObj.root
|
|
1033
|
+
if (!tarRoot && mpx.asyncSubpackageRules) {
|
|
1034
|
+
for (const item of mpx.asyncSubpackageRules) {
|
|
1035
|
+
if (matchCondition(resourcePath, item)) {
|
|
1036
|
+
tarRoot = item.root
|
|
1037
|
+
break
|
|
1038
|
+
}
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
1041
|
+
if (tarRoot) {
|
|
1031
1042
|
// 删除root query
|
|
1032
|
-
request = addQuery(request, {}, false, ['root'])
|
|
1043
|
+
if (queryObj.root) request = addQuery(request, {}, false, ['root'])
|
|
1033
1044
|
// 目前仅wx和ali支持require.async,ali需要开启enableAliRequireAsync,其余平台使用CommonJsAsyncDependency进行模拟抹平
|
|
1034
1045
|
if (mpx.enableRequireAsync) {
|
|
1035
|
-
const dep = new DynamicEntryDependency(request, 'export', '',
|
|
1046
|
+
const dep = new DynamicEntryDependency(request, 'export', '', tarRoot, '', context, range, {
|
|
1036
1047
|
isRequireAsync: true,
|
|
1037
1048
|
retryRequireAsync: !!this.options.retryRequireAsync
|
|
1038
1049
|
})
|
|
@@ -6,6 +6,7 @@ const parseRequest = require('../utils/parse-request')
|
|
|
6
6
|
const addQuery = require('../utils/add-query')
|
|
7
7
|
const loaderUtils = require('loader-utils')
|
|
8
8
|
const resolve = require('../utils/resolve')
|
|
9
|
+
const { matchCondition } = require('../utils/match-condition')
|
|
9
10
|
|
|
10
11
|
module.exports = function createJSONHelper ({ loaderContext, emitWarning, customGetDynamicEntry }) {
|
|
11
12
|
const mpx = loaderContext.getMpx()
|
|
@@ -17,6 +18,7 @@ module.exports = function createJSONHelper ({ loaderContext, emitWarning, custom
|
|
|
17
18
|
const getOutputPath = mpx.getOutputPath
|
|
18
19
|
const mode = mpx.mode
|
|
19
20
|
const enableRequireAsync = mpx.enableRequireAsync
|
|
21
|
+
const asyncSubpackageRules = mpx.asyncSubpackageRules
|
|
20
22
|
|
|
21
23
|
const isUrlRequest = r => isUrlRequestRaw(r, root, externals)
|
|
22
24
|
const urlToRequest = r => loaderUtils.urlToRequest(r)
|
|
@@ -45,17 +47,27 @@ module.exports = function createJSONHelper ({ loaderContext, emitWarning, custom
|
|
|
45
47
|
if (resolveMode === 'native') {
|
|
46
48
|
component = urlToRequest(component)
|
|
47
49
|
}
|
|
48
|
-
|
|
49
50
|
resolve(context, component, loaderContext, (err, resource, info) => {
|
|
50
51
|
if (err) return callback(err)
|
|
51
52
|
const { resourcePath, queryObj } = parseRequest(resource)
|
|
52
|
-
|
|
53
|
+
let placeholder = null
|
|
53
54
|
if (queryObj.root) {
|
|
54
55
|
// 删除root query
|
|
55
56
|
resource = addQuery(resource, {}, false, ['root'])
|
|
56
57
|
// 目前只有微信支持分包异步化
|
|
57
|
-
if (enableRequireAsync)
|
|
58
|
+
if (enableRequireAsync) {
|
|
59
|
+
tarRoot = queryObj.root
|
|
60
|
+
}
|
|
61
|
+
} else if (!queryObj.root && asyncSubpackageRules && enableRequireAsync) {
|
|
62
|
+
for (const item of asyncSubpackageRules) {
|
|
63
|
+
if (matchCondition(resourcePath, item)) {
|
|
64
|
+
tarRoot = item.root
|
|
65
|
+
placeholder = item.placeholder
|
|
66
|
+
break
|
|
67
|
+
}
|
|
68
|
+
}
|
|
58
69
|
}
|
|
70
|
+
|
|
59
71
|
const parsed = path.parse(resourcePath)
|
|
60
72
|
const ext = parsed.ext
|
|
61
73
|
const resourceName = path.join(parsed.dir, parsed.name)
|
|
@@ -84,7 +96,7 @@ module.exports = function createJSONHelper ({ loaderContext, emitWarning, custom
|
|
|
84
96
|
}
|
|
85
97
|
|
|
86
98
|
const entry = getDynamicEntry(resource, 'component', outputPath, tarRoot, relativePath)
|
|
87
|
-
callback(null, entry)
|
|
99
|
+
callback(null, entry, tarRoot, placeholder)
|
|
88
100
|
})
|
|
89
101
|
}
|
|
90
102
|
|
|
@@ -38,6 +38,7 @@ module.exports = function (content) {
|
|
|
38
38
|
const globalSrcMode = mpx.srcMode
|
|
39
39
|
const localSrcMode = queryObj.mode
|
|
40
40
|
const srcMode = localSrcMode || globalSrcMode
|
|
41
|
+
const projectRoot = mpx.projectRoot
|
|
41
42
|
|
|
42
43
|
const isApp = !(pagesMap[resourcePath] || componentsMap[resourcePath])
|
|
43
44
|
const publicPath = this._compilation.outputOptions.publicPath || ''
|
|
@@ -55,6 +56,25 @@ module.exports = function (content) {
|
|
|
55
56
|
)
|
|
56
57
|
}
|
|
57
58
|
|
|
59
|
+
const fillInComponentPlaceholder = (name, placeholder, placeholderEntry) => {
|
|
60
|
+
const componentPlaceholder = json.componentPlaceholder || {}
|
|
61
|
+
if (componentPlaceholder[name]) return
|
|
62
|
+
componentPlaceholder[name] = placeholder
|
|
63
|
+
json.componentPlaceholder = componentPlaceholder
|
|
64
|
+
if (placeholderEntry && !json.usingComponents[placeholder]) json.usingComponents[placeholder] = placeholderEntry
|
|
65
|
+
}
|
|
66
|
+
const normalizePlaceholder = (placeholder) => {
|
|
67
|
+
if (typeof placeholder === 'string') {
|
|
68
|
+
placeholder = {
|
|
69
|
+
name: placeholder
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (!placeholder.name) {
|
|
73
|
+
emitError('The asyncSubpackageRules configuration format of @mpxjs/webpack-plugin a is incorrect')
|
|
74
|
+
}
|
|
75
|
+
return placeholder
|
|
76
|
+
}
|
|
77
|
+
|
|
58
78
|
const {
|
|
59
79
|
isUrlRequest,
|
|
60
80
|
urlToRequest,
|
|
@@ -142,22 +162,6 @@ module.exports = function (content) {
|
|
|
142
162
|
}
|
|
143
163
|
}
|
|
144
164
|
|
|
145
|
-
// 校验异步组件占位符 componentPlaceholder 不为空
|
|
146
|
-
if (mpx.enableRequireAsync) {
|
|
147
|
-
const { usingComponents, componentPlaceholder = {} } = json
|
|
148
|
-
if (usingComponents) {
|
|
149
|
-
for (const compName in usingComponents) {
|
|
150
|
-
const compPath = usingComponents[compName]
|
|
151
|
-
if (!/\?root=/g.test(compPath)) continue
|
|
152
|
-
const compPlaceholder = componentPlaceholder[compName]
|
|
153
|
-
if (!compPlaceholder) {
|
|
154
|
-
const errMsg = `componentPlaceholder of "${compName}" doesn't exist! \n\r`
|
|
155
|
-
emitError(errMsg)
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
165
|
// 快应用补全json配置,必填项
|
|
162
166
|
if (mode === 'qa' && isApp) {
|
|
163
167
|
const defaultConf = {
|
|
@@ -204,14 +208,36 @@ module.exports = function (content) {
|
|
|
204
208
|
const processComponents = (components, context, callback) => {
|
|
205
209
|
if (components) {
|
|
206
210
|
async.eachOf(components, (component, name, callback) => {
|
|
207
|
-
processComponent(component, context, { relativePath }, (err, entry) => {
|
|
211
|
+
processComponent(component, context, { relativePath }, (err, entry, root, placeholder) => {
|
|
208
212
|
if (err === RESOLVE_IGNORED_ERR) {
|
|
209
213
|
delete components[name]
|
|
210
214
|
return callback()
|
|
211
215
|
}
|
|
212
216
|
if (err) return callback(err)
|
|
213
217
|
components[name] = entry
|
|
214
|
-
|
|
218
|
+
if (root) {
|
|
219
|
+
if (placeholder) {
|
|
220
|
+
placeholder = normalizePlaceholder(placeholder)
|
|
221
|
+
if (placeholder.resource) {
|
|
222
|
+
processComponent(placeholder.resource, projectRoot, { relativePath }, (err, entry) => {
|
|
223
|
+
if (err) return callback(err)
|
|
224
|
+
fillInComponentPlaceholder(name, placeholder.name, entry)
|
|
225
|
+
callback()
|
|
226
|
+
})
|
|
227
|
+
} else {
|
|
228
|
+
fillInComponentPlaceholder(name, placeholder.name)
|
|
229
|
+
callback()
|
|
230
|
+
}
|
|
231
|
+
} else {
|
|
232
|
+
if (!json.componentPlaceholder || !json.componentPlaceholder[name]) {
|
|
233
|
+
const errMsg = `componentPlaceholder of "${name}" doesn't exist! \n\r`
|
|
234
|
+
emitError(errMsg)
|
|
235
|
+
}
|
|
236
|
+
callback()
|
|
237
|
+
}
|
|
238
|
+
} else {
|
|
239
|
+
callback()
|
|
240
|
+
}
|
|
215
241
|
})
|
|
216
242
|
}, callback)
|
|
217
243
|
} else {
|
package/lib/runtime/base.styl
CHANGED
|
@@ -120,8 +120,3 @@ html, body, .app {
|
|
|
120
120
|
font-family "weui"
|
|
121
121
|
src url('data:application/octet-stream;base64,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') format('truetype')
|
|
122
122
|
}
|
|
123
|
-
|
|
124
|
-
.mpx-root-view {
|
|
125
|
-
display: inline
|
|
126
|
-
line-height: normal
|
|
127
|
-
}
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
},
|
|
114
114
|
watch: {
|
|
115
115
|
scrollIntoView (val) {
|
|
116
|
-
this.
|
|
116
|
+
this.scrollToView(val, this.scrollWithAnimation ? 200 : 0)
|
|
117
117
|
},
|
|
118
118
|
_scrollTop (val) {
|
|
119
119
|
this.bs && this.bs.scrollTo(this.bs.x, -val, this.scrollWithAnimation ? 200 : 0)
|
|
@@ -201,9 +201,7 @@
|
|
|
201
201
|
leading: true,
|
|
202
202
|
trailing: false
|
|
203
203
|
}))
|
|
204
|
-
if (this.scrollIntoView)
|
|
205
|
-
this.bs.scrollToElement('#' + this.scrollIntoView)
|
|
206
|
-
}
|
|
204
|
+
if (this.scrollIntoView) this.scrollToView(this.scrollIntoView)
|
|
207
205
|
// 若开启自定义下拉刷新 或 开启 scroll-view 增强特性
|
|
208
206
|
if (this.refresherEnabled || this.enhanced) {
|
|
209
207
|
const actionsHandlerHooks = this.bs.scroller.actionsHandler.hooks
|
|
@@ -258,6 +256,12 @@
|
|
|
258
256
|
}
|
|
259
257
|
}
|
|
260
258
|
},
|
|
259
|
+
scrollToView (id, duration = 0) {
|
|
260
|
+
if (!id) return
|
|
261
|
+
id = '#' + id
|
|
262
|
+
if (!document.querySelector(id)) return // 不存在元素时阻断,直接调用better-scroll的方法会报错
|
|
263
|
+
this.bs?.scrollToElement(id, duration)
|
|
264
|
+
},
|
|
261
265
|
initLayerComputed () {
|
|
262
266
|
const wrapper = this.$refs.wrapper
|
|
263
267
|
const wrapperWidth = wrapper.offsetWidth
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
module.exports = (loaders, loaderIndex) => {
|
|
2
|
-
for (let
|
|
3
|
-
const currentLoader = loaders[
|
|
2
|
+
for (let i = loaderIndex; i >= 0; i--) {
|
|
3
|
+
const currentLoader = loaders[i]
|
|
4
4
|
if (currentLoader.path.endsWith('ts-loader/dist/stringify-loader.js')) {
|
|
5
|
-
|
|
5
|
+
return i
|
|
6
6
|
}
|
|
7
|
-
loaderIndex--
|
|
8
7
|
}
|
|
9
8
|
return loaderIndex
|
|
10
9
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mpxjs/webpack-plugin",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.43",
|
|
4
4
|
"description": "mpx compile core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mpx"
|
|
@@ -82,5 +82,5 @@
|
|
|
82
82
|
"engines": {
|
|
83
83
|
"node": ">=14.14.0"
|
|
84
84
|
},
|
|
85
|
-
"gitHead": "
|
|
85
|
+
"gitHead": "f1066822d83e958f6266218c51c21b2ebb2ad04b"
|
|
86
86
|
}
|