Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
靖轩达人
uni-app
提交
08fabd9e
U
uni-app
项目概览
靖轩达人
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
08fabd9e
编写于
11月 21, 2019
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(mp): improve find-module-id logic #929
上级
b4d9fade
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
43 addition
and
25 deletion
+43
-25
packages/webpack-uni-mp-loader/lib/plugin/generate-component.js
...es/webpack-uni-mp-loader/lib/plugin/generate-component.js
+43
-25
未找到文件。
packages/webpack-uni-mp-loader/lib/plugin/generate-component.js
浏览文件 @
08fabd9e
...
...
@@ -12,6 +12,44 @@ const {
}
=
require
(
'
../shared
'
)
const
uniPath
=
normalizePath
(
require
.
resolve
(
'
@dcloudio/uni-
'
+
process
.
env
.
UNI_PLATFORM
))
function
findModule
(
modules
,
resource
,
altResource
)
{
return
modules
.
find
(
module
=>
{
let
moduleResource
=
module
.
resource
if
(
!
moduleResource
||
(
moduleResource
.
indexOf
(
'
.vue
'
)
===
-
1
&&
moduleResource
.
indexOf
(
'
.nvue
'
)
===
-
1
)
)
{
return
}
moduleResource
=
removeExt
(
module
.
resource
)
return
moduleResource
===
resource
||
moduleResource
===
altResource
}
)
}
function
findModuleId
(
modules
,
resource
,
altResource
)
{
const
module
=
findModule
(
modules
,
resource
,
altResource
)
return
module
&&
module
.
id
}
function
findModuleIdFromConcatenatedModules
(
modules
,
resource
,
altResource
)
{
const
module
=
modules
.
find
(
module
=>
{
return
findModule
(
module
.
modules
,
resource
,
altResource
)
})
return
module
&&
module
.
id
}
function
findComponentModuleId
(
modules
,
concatenatedModules
,
resource
,
altResource
)
{
return
findModuleId
(
modules
,
resource
,
altResource
)
||
findModuleIdFromConcatenatedModules
(
concatenatedModules
,
resource
,
altResource
)
||
resource
}
// TODO 解决方案不太理想
module
.
exports
=
function
generateComponent
(
compilation
)
{
const
components
=
getComponentSet
()
...
...
@@ -19,6 +57,7 @@ module.exports = function generateComponent (compilation) {
const
assets
=
compilation
.
assets
const
modules
=
compilation
.
modules
const
concatenatedModules
=
modules
.
filter
(
module
=>
module
.
modules
)
const
uniModuleId
=
modules
.
find
(
module
=>
module
.
resource
&&
normalizePath
(
module
.
resource
)
===
uniPath
).
id
Object
.
keys
(
assets
).
forEach
(
name
=>
{
...
...
@@ -30,31 +69,10 @@ module.exports = function generateComponent (compilation) {
const
modulePath
=
removeExt
(
restoreNodeModules
(
name
))
const
resource
=
normalizePath
(
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
'
..
'
,
modulePath
))
const
altResource
=
normalizePath
(
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
modulePath
))
moduleId
=
modules
.
find
(
module
=>
{
if
(
module
.
resource
)
{
const
moduleResource
=
removeExt
(
module
.
resource
)
return
(
module
.
resource
.
indexOf
(
'
.vue
'
)
!==
-
1
||
module
.
resource
.
indexOf
(
'
.nvue
'
)
!==
-
1
)
&&
(
moduleResource
===
resource
||
moduleResource
===
altResource
)
}
}).
id
moduleId
=
findComponentModuleId
(
modules
,
concatenatedModules
,
resource
,
altResource
)
}
else
{
const
resource
=
removeExt
(
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
name
))
moduleId
=
modules
.
find
(
module
=>
{
return
module
.
resource
&&
(
module
.
resource
.
indexOf
(
'
.vue
'
)
!==
-
1
||
module
.
resource
.
indexOf
(
'
.nvue
'
)
!==
-
1
)
&&
removeExt
(
module
.
resource
)
===
resource
}).
id
moduleId
=
findComponentModuleId
(
modules
,
concatenatedModules
,
resource
)
}
const
origSource
=
assets
[
name
].
source
()
...
...
@@ -66,7 +84,7 @@ module.exports = function generateComponent (compilation) {
beforeCode
=
'
;my.defineComponent || (my.defineComponent = Component);
'
}
const
source
=
beforeCode
+
origSource
+
`
`
;(
${
globalVar
}
["webpackJsonp"] =
${
globalVar
}
["webpackJsonp"] || []).push([
'
${
chunkName
}
',
{
...
...
@@ -75,7 +93,7 @@ module.exports = function generateComponent (compilation) {
})
},
[['
${
chunkName
}
']]
]);
]);
`
assets
[
name
]
=
{
size
()
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录