提交 2fc06b03 编写于 作者: D DCloud_LXH

fix(mp-baidu): usingSwanComponents 和 usingComponents 若两者同时存在,导致代码上传报错 fixed #2652

上级 746905dc
...@@ -15,7 +15,17 @@ const EMPTY_COMPONENT = 'Component({})' ...@@ -15,7 +15,17 @@ const EMPTY_COMPONENT = 'Component({})'
const usingComponentsMap = {} const usingComponentsMap = {}
function analyzeUsingComponents () { // 百度小程序动态组件库 usingSwanComponents 引用组件
const mpBaiduDynamicLibs = [
'dynamicLib://editorLib/editor',
'dynamicLib://echartsLib/chart',
'dynamicLib://myModelviewer/modelviewer',
'dynamicLib://myDynamicLib/panoviewer',
'dynamicLib://myDynamicLib/spintileviewer',
'dynamicLib://myDynamicLib/vrvideo'
]
function analyzeUsingComponents() {
if (!process.env.UNI_OPT_SUBPACKAGES) { if (!process.env.UNI_OPT_SUBPACKAGES) {
return return
} }
...@@ -85,7 +95,7 @@ function analyzeUsingComponents () { ...@@ -85,7 +95,7 @@ function analyzeUsingComponents () {
// }, {}) // }, {})
} }
function normalizeUsingComponents (file, usingComponents) { function normalizeUsingComponents(file, usingComponents) {
const names = Object.keys(usingComponents) const names = Object.keys(usingComponents)
if (!names.length) { if (!names.length) {
return usingComponents return usingComponents
...@@ -97,7 +107,7 @@ function normalizeUsingComponents (file, usingComponents) { ...@@ -97,7 +107,7 @@ function normalizeUsingComponents (file, usingComponents) {
return usingComponents return usingComponents
} }
module.exports = function generateJson (compilation) { module.exports = function generateJson(compilation) {
analyzeUsingComponents() analyzeUsingComponents()
const jsonFileMap = getChangedJsonFileMap() const jsonFileMap = getChangedJsonFileMap()
...@@ -130,14 +140,16 @@ module.exports = function generateJson (compilation) { ...@@ -130,14 +140,16 @@ module.exports = function generateJson (compilation) {
const value = usingComponents[key] const value = usingComponents[key]
if (value.includes('://')) { if (value.includes('://')) {
/** /**
* 百度小程序部分组件(如:editor)使用‘usingSwanComponents’ 引入 * 部分动态库组件(如:editor)使用‘usingSwanComponents’ 引入
* 部分组件(如:swan-sitemap-list)使用'usingComponents'引入 * 部分动态库组件(如:swan-sitemap-list)使用'usingComponents'引入
* 经测试,两者保留都不会报错,因此去除以下 delete 语句 * 做白名单机制
*/ */
// delete usingComponents[key] if (mpBaiduDynamicLibs.includes(value)) {
delete usingComponents[key]
jsonObj.usingSwanComponents = jsonObj.usingSwanComponents || {} jsonObj.usingSwanComponents = jsonObj.usingSwanComponents || {}
jsonObj.usingSwanComponents[key] = value jsonObj.usingSwanComponents[key] = value
} }
}
}) })
} }
...@@ -168,10 +180,10 @@ module.exports = function generateJson (compilation) { ...@@ -168,10 +180,10 @@ module.exports = function generateJson (compilation) {
scopedSlotComponents.forEach(scopedSlotComponent => { scopedSlotComponents.forEach(scopedSlotComponent => {
compilation.assets[scopedSlotComponent] = { compilation.assets[scopedSlotComponent] = {
size () { size() {
return Buffer.byteLength(scopedSlotComponentJsonSource, 'utf8') return Buffer.byteLength(scopedSlotComponentJsonSource, 'utf8')
}, },
source () { source() {
return scopedSlotComponentJsonSource return scopedSlotComponentJsonSource
} }
} }
...@@ -203,20 +215,20 @@ module.exports = function generateJson (compilation) { ...@@ -203,20 +215,20 @@ module.exports = function generateJson (compilation) {
!compilation.assets[jsFile] !compilation.assets[jsFile]
) { ) {
const jsFileAsset = { const jsFileAsset = {
size () { size() {
return Buffer.byteLength(EMPTY_COMPONENT, 'utf8') return Buffer.byteLength(EMPTY_COMPONENT, 'utf8')
}, },
source () { source() {
return EMPTY_COMPONENT return EMPTY_COMPONENT
} }
} }
compilation.assets[jsFile] = jsFileAsset compilation.assets[jsFile] = jsFileAsset
} }
const jsonAsset = { const jsonAsset = {
size () { size() {
return Buffer.byteLength(source, 'utf8') return Buffer.byteLength(source, 'utf8')
}, },
source () { source() {
return source return source
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册