Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
0226eac6
U
uni-app
项目概览
DCloud
/
uni-app
3 个月 前同步成功
通知
725
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0226eac6
编写于
1月 21, 2022
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(mp): add wxsCallMethods (#3218)
上级
377b2f59
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
63 addition
and
1 deletion
+63
-1
packages/uni-cli-shared/src/mp/index.ts
packages/uni-cli-shared/src/mp/index.ts
+2
-0
packages/uni-cli-shared/src/mp/wxs.ts
packages/uni-cli-shared/src/mp/wxs.ts
+59
-0
packages/uni-mp-vite/src/plugins/renderjs.ts
packages/uni-mp-vite/src/plugins/renderjs.ts
+2
-1
未找到文件。
packages/uni-cli-shared/src/mp/index.ts
浏览文件 @
0226eac6
export
*
from
'
./ast
'
export
*
from
'
./wxs
'
export
*
from
'
./nvue
'
export
*
from
'
./event
'
export
*
from
'
./style
'
export
*
from
'
./template
'
export
*
from
'
./constants
'
export
{
HTML_TO_MINI_PROGRAM_TAGS
}
from
'
./tags
'
export
{
copyMiniProgramPluginJson
}
from
'
./plugin
'
export
{
...
...
packages/uni-cli-shared/src/mp/wxs.ts
0 → 100644
浏览文件 @
0226eac6
import
{
isCallExpression
,
isIdentifier
,
isMemberExpression
,
isStringLiteral
,
}
from
'
@babel/types
'
import
{
walk
}
from
'
estree-walker
'
import
{
parseProgram
}
from
'
./ast
'
export
function
parseWxsCallMethods
(
code
:
string
)
{
if
(
!
code
.
includes
(
'
callMethod
'
))
{
return
[]
}
const
ast
=
parseProgram
(
code
,
''
,
{})
const
wxsCallMethods
=
new
Set
<
string
>
()
;(
walk
as
any
)(
ast
,
{
enter
(
child
:
Node
)
{
if
(
!
isCallExpression
(
child
))
{
return
}
const
{
callee
}
=
child
// .callMethod
if
(
!
isMemberExpression
(
callee
)
||
!
isIdentifier
(
callee
.
property
)
||
callee
.
property
.
name
!==
'
callMethod
'
)
{
return
}
// .callMethod('test',...)
const
args
=
child
.
arguments
if
(
!
args
.
length
)
{
return
}
const
[
name
]
=
args
if
(
!
isStringLiteral
(
name
))
{
return
}
wxsCallMethods
.
add
(
name
.
value
)
},
})
return
[...
wxsCallMethods
]
}
export
function
genWxsCallMethodsCode
(
code
:
string
)
{
const
wxsCallMethods
=
parseWxsCallMethods
(
code
)
if
(
!
wxsCallMethods
.
length
)
{
return
`export default {}`
}
return
`export default (Component) => {
if(!Component.wxsCallMethods){
Component.wxsCallMethods = []
}
Component.wxsCallMethods.push(
${
wxsCallMethods
.
map
((
m
)
=>
`'
${
m
}
'`
)
.
join
(
'
,
'
)}
)
}
`
}
packages/uni-mp-vite/src/plugins/renderjs.ts
浏览文件 @
0226eac6
...
...
@@ -6,6 +6,7 @@ import {
MiniProgramFilterOptions
,
missingModuleName
,
parseRenderjs
,
genWxsCallMethodsCode
,
}
from
'
@dcloudio/uni-cli-shared
'
const
debugRenderjs
=
debug
(
'
uni:mp-renderjs
'
)
...
...
@@ -50,7 +51,7 @@ export function uniRenderjsPlugin({ lang }: { lang?: string }): Plugin {
})
}
return
{
code
:
'
export default {}
'
,
code
:
genWxsCallMethodsCode
(
code
)
,
map
:
{
mappings
:
''
},
}
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录