Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
genary
uni-app
提交
654930b0
U
uni-app
项目概览
genary
/
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,发现更多精彩内容 >>
提交
654930b0
编写于
5月 25, 2022
作者:
D
DCloud_LXH
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: uniStracktraceyPreset
上级
281b4d55
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
107 addition
and
74 deletion
+107
-74
packages/uni-stacktracey/build.json
packages/uni-stacktracey/build.json
+0
-3
packages/uni-stacktracey/dist/uni-stacktracey.cjs.js
packages/uni-stacktracey/dist/uni-stacktracey.cjs.js
+29
-16
packages/uni-stacktracey/dist/uni-stacktracey.es.js
packages/uni-stacktracey/dist/uni-stacktracey.es.js
+29
-23
packages/uni-stacktracey/src/index.ts
packages/uni-stacktracey/src/index.ts
+45
-25
packages/uni-stacktracey/test/index.js
packages/uni-stacktracey/test/index.js
+4
-7
未找到文件。
packages/uni-stacktracey/build.json
浏览文件 @
654930b0
...
...
@@ -15,9 +15,6 @@
"dist/uni-stacktracey.es.js"
]
},
"output"
:
{
"format"
:
"es"
},
"replacements"
:
{
"__PLATFORM_WEB__"
:
"true"
}
...
...
packages/uni-stacktracey/dist/uni-stacktracey.cjs.js
浏览文件 @
654930b0
...
...
@@ -18,13 +18,13 @@ function stacktracey(stacktrace, opts) {
const
stack
=
opts
.
preset
.
parseStacktrace
(
stacktrace
);
stack
.
items
.
forEach
((
item
,
index
)
=>
{
const
fn
=
()
=>
{
const
{
line
=
0
,
column
=
0
,
file
,
fileName
}
=
item
;
const
{
line
=
0
,
column
=
0
,
file
,
fileName
,
fileRelative
}
=
item
;
try
{
return
opts
.
preset
.
getSourceMapContent
(
file
,
fileName
)
.
getSourceMapContent
(
file
,
fileName
,
fileRelative
)
.
then
((
content
)
=>
{
if
(
content
)
return
sourceMap
.
SourceMapConsumer
.
with
(
content
,
null
,
(
consumer
)
=>
{
if
(
content
)
{
return
getConsumer
(
content
).
then
(
(
consumer
)
=>
{
const
sourceMapContent
=
parseSourceMapContent
(
consumer
,
{
line
,
column
,
...
...
@@ -41,6 +41,7 @@ function stacktracey(stacktrace, opts) {
});
}
});
}
});
}
catch
(
error
)
{
...
...
@@ -68,6 +69,19 @@ function stacktracey(stacktrace, opts) {
});
});
}
function
getConsumer
(
content
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
sourceMap
.
SourceMapConsumer
.
with
)
{
sourceMap
.
SourceMapConsumer
.
with
(
content
,
null
,
(
consumer
)
=>
{
resolve
(
consumer
);
});
}
else
{
// @ts-ignore
resolve
(
sourceMap
.
SourceMapConsumer
(
content
));
}
});
}
function
getSourceMapContent
(
sourcemapUrl
)
{
try
{
return
(
sourcemapCatch
[
sourcemapUrl
]
||
...
...
@@ -115,20 +129,19 @@ function parseSourceMapContent(consumer, obj) {
function
uniStracktraceyPreset
(
opts
)
{
const
{
base
,
sourceRoot
}
=
opts
;
return
{
parseSourceMapUrl
(
file
,
fileName
)
{
parseSourceMapUrl
(
file
,
fileName
,
fileRelative
)
{
// 组合 sourceMapUrl
if
(
!
base
)
return
''
;
file
=
(
file
.
match
(
/
(\/
.*
)
/
)
||
[])[
1
];
if
(
!
file
)
if
(
fileRelative
.
indexOf
(
'
(
'
)
!==
-
1
)
fileRelative
=
fileRelative
.
match
(
/
\((
.*
)
/
)[
1
];
if
(
!
base
||
!
fileRelative
)
return
''
;
if
(
sourceRoot
)
{
return
`
${
file
.
replace
(
sourceRoot
,
base
+
'
/
'
)}
.map`
;
return
`
${
file
Relative
.
replace
(
sourceRoot
,
base
+
'
/
'
)}
.map`
;
}
return
`
${
base
}
/
${
file
}
.map`
;
return
`
${
base
}
/
${
file
Relative
}
.map`
;
},
getSourceMapContent
(
file
,
fileName
)
{
return
Promise
.
resolve
(
getSourceMapContent
(
this
.
parseSourceMapUrl
(
file
,
fileName
)));
getSourceMapContent
(
file
,
fileName
,
fileRelative
)
{
return
Promise
.
resolve
(
getSourceMapContent
(
this
.
parseSourceMapUrl
(
file
,
fileName
,
fileRelative
)));
},
parseStacktrace
(
stacktrace
)
{
return
new
StackTracey__default
[
"
default
"
](
stacktrace
);
...
...
@@ -144,16 +157,16 @@ function utsStracktraceyPreset(opts) {
const
{
base
,
sourceRoot
}
=
opts
;
let
errStack
=
[];
return
{
parseSourceMapUrl
(
file
,
fileName
)
{
parseSourceMapUrl
(
file
,
fileName
,
fileRelative
)
{
// 组合 sourceMapUrl
if
(
sourceRoot
)
{
return
`
${
file
.
replace
(
sourceRoot
,
base
+
'
/
'
)}
.map`
;
}
return
`
${
base
}
/
${
file
}
.map`
;
},
getSourceMapContent
(
file
,
fileName
)
{
getSourceMapContent
(
file
,
fileName
,
fileRelative
)
{
// 根据 base,filename 组合 sourceMapUrl
return
Promise
.
resolve
(
getSourceMapContent
(
this
.
parseSourceMapUrl
(
file
,
fileName
)));
return
Promise
.
resolve
(
getSourceMapContent
(
this
.
parseSourceMapUrl
(
file
,
fileName
,
fileRelative
)));
},
parseStacktrace
(
str
)
{
const
lines
=
(
str
||
''
).
split
(
'
\n
'
);
...
...
packages/uni-stacktracey/dist/uni-stacktracey.es.js
浏览文件 @
654930b0
...
...
@@ -2,13 +2,6 @@ import fs from 'fs';
import
StackTracey
from
'
stacktracey
'
;
import
{
SourceMapConsumer
}
from
'
source-map
'
;
// @ts-ignore
{
// @ts-ignore
SourceMapConsumer
.
initialize
({
'
lib/mappings.wasm
'
:
'
https://unpkg.com/source-map@0.7.3/lib/mappings.wasm
'
,
});
}
const
nixSlashes
=
(
x
)
=>
x
.
replace
(
/
\\
/g
,
'
/
'
);
const
sourcemapCatch
=
{};
function
stacktracey
(
stacktrace
,
opts
)
{
...
...
@@ -16,13 +9,13 @@ function stacktracey(stacktrace, opts) {
const
stack
=
opts
.
preset
.
parseStacktrace
(
stacktrace
);
stack
.
items
.
forEach
((
item
,
index
)
=>
{
const
fn
=
()
=>
{
const
{
line
=
0
,
column
=
0
,
file
,
fileName
}
=
item
;
const
{
line
=
0
,
column
=
0
,
file
,
fileName
,
fileRelative
}
=
item
;
try
{
return
opts
.
preset
.
getSourceMapContent
(
file
,
fileName
)
.
getSourceMapContent
(
file
,
fileName
,
fileRelative
)
.
then
((
content
)
=>
{
if
(
content
)
return
SourceMapConsumer
.
with
(
content
,
null
,
(
consumer
)
=>
{
if
(
content
)
{
return
getConsumer
(
content
).
then
(
(
consumer
)
=>
{
const
sourceMapContent
=
parseSourceMapContent
(
consumer
,
{
line
,
column
,
...
...
@@ -39,6 +32,7 @@ function stacktracey(stacktrace, opts) {
});
}
});
}
});
}
catch
(
error
)
{
...
...
@@ -66,6 +60,19 @@ function stacktracey(stacktrace, opts) {
});
});
}
function
getConsumer
(
content
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
SourceMapConsumer
.
with
)
{
SourceMapConsumer
.
with
(
content
,
null
,
(
consumer
)
=>
{
resolve
(
consumer
);
});
}
else
{
// @ts-ignore
resolve
(
SourceMapConsumer
(
content
));
}
});
}
function
getSourceMapContent
(
sourcemapUrl
)
{
try
{
return
(
sourcemapCatch
[
sourcemapUrl
]
||
...
...
@@ -113,20 +120,19 @@ function parseSourceMapContent(consumer, obj) {
function
uniStracktraceyPreset
(
opts
)
{
const
{
base
,
sourceRoot
}
=
opts
;
return
{
parseSourceMapUrl
(
file
,
fileName
)
{
parseSourceMapUrl
(
file
,
fileName
,
fileRelative
)
{
// 组合 sourceMapUrl
if
(
!
base
)
return
''
;
file
=
(
file
.
match
(
/
(\/
.*
)
/
)
||
[])[
1
];
if
(
!
file
)
if
(
fileRelative
.
indexOf
(
'
(
'
)
!==
-
1
)
fileRelative
=
fileRelative
.
match
(
/
\((
.*
)
/
)[
1
];
if
(
!
base
||
!
fileRelative
)
return
''
;
if
(
sourceRoot
)
{
return
`
${
file
.
replace
(
sourceRoot
,
base
+
'
/
'
)}
.map`
;
return
`
${
file
Relative
.
replace
(
sourceRoot
,
base
+
'
/
'
)}
.map`
;
}
return
`
${
base
}
/
${
file
}
.map`
;
return
`
${
base
}
/
${
file
Relative
}
.map`
;
},
getSourceMapContent
(
file
,
fileName
)
{
return
Promise
.
resolve
(
getSourceMapContent
(
this
.
parseSourceMapUrl
(
file
,
fileName
)));
getSourceMapContent
(
file
,
fileName
,
fileRelative
)
{
return
Promise
.
resolve
(
getSourceMapContent
(
this
.
parseSourceMapUrl
(
file
,
fileName
,
fileRelative
)));
},
parseStacktrace
(
stacktrace
)
{
return
new
StackTracey
(
stacktrace
);
...
...
@@ -142,16 +148,16 @@ function utsStracktraceyPreset(opts) {
const
{
base
,
sourceRoot
}
=
opts
;
let
errStack
=
[];
return
{
parseSourceMapUrl
(
file
,
fileName
)
{
parseSourceMapUrl
(
file
,
fileName
,
fileRelative
)
{
// 组合 sourceMapUrl
if
(
sourceRoot
)
{
return
`
${
file
.
replace
(
sourceRoot
,
base
+
'
/
'
)}
.map`
;
}
return
`
${
base
}
/
${
file
}
.map`
;
},
getSourceMapContent
(
file
,
fileName
)
{
getSourceMapContent
(
file
,
fileName
,
fileRelative
)
{
// 根据 base,filename 组合 sourceMapUrl
return
Promise
.
resolve
(
getSourceMapContent
(
this
.
parseSourceMapUrl
(
file
,
fileName
)));
return
Promise
.
resolve
(
getSourceMapContent
(
this
.
parseSourceMapUrl
(
file
,
fileName
,
fileRelative
)));
},
parseStacktrace
(
str
)
{
const
lines
=
(
str
||
''
).
split
(
'
\n
'
);
...
...
packages/uni-stacktracey/src/index.ts
浏览文件 @
654930b0
...
...
@@ -7,14 +7,6 @@ import {
Position
,
}
from
'
source-map
'
// @ts-ignore
if
(
__PLATFORM_WEB__
)
{
// @ts-ignore
SourceMapConsumer
.
initialize
({
'
lib/mappings.wasm
'
:
'
https://unpkg.com/source-map@0.7.3/lib/mappings.wasm
'
,
})
}
const
nixSlashes
=
(
x
:
string
)
=>
x
.
replace
(
/
\\
/g
,
'
/
'
)
const
sourcemapCatch
:
Record
<
string
,
string
|
Promise
<
string
>>
=
{}
...
...
@@ -46,8 +38,16 @@ interface StacktraceyPreset {
* 编译后的文件名
* @param fileName
*/
parseSourceMapUrl
(
file
:
string
,
fileName
:
string
):
string
getSourceMapContent
(
file
:
string
,
fileName
:
string
):
Promise
<
string
>
parseSourceMapUrl
(
file
:
string
,
fileName
:
string
,
fileRelative
:
string
):
string
getSourceMapContent
(
file
:
string
,
fileName
:
string
,
fileRelative
:
string
):
Promise
<
string
>
}
interface
StacktraceyOptions
{
...
...
@@ -64,13 +64,13 @@ export function stacktracey(
stack
.
items
.
forEach
((
item
,
index
)
=>
{
const
fn
=
()
=>
{
const
{
line
=
0
,
column
=
0
,
file
,
fileName
}
=
item
const
{
line
=
0
,
column
=
0
,
file
,
fileName
,
fileRelative
}
=
item
try
{
return
opts
.
preset
.
getSourceMapContent
(
file
,
fileName
)
.
getSourceMapContent
(
file
,
fileName
,
fileRelative
)
.
then
((
content
)
=>
{
if
(
content
)
return
SourceMapConsumer
.
with
(
content
,
null
,
(
consumer
)
=>
{
if
(
content
)
{
return
getConsumer
(
content
).
then
(
(
consumer
)
=>
{
const
sourceMapContent
=
parseSourceMapContent
(
consumer
,
{
line
,
column
,
...
...
@@ -95,6 +95,7 @@ export function stacktracey(
})
}
})
}
})
}
catch
(
error
)
{
return
Promise
.
resolve
()
...
...
@@ -123,6 +124,21 @@ export function stacktracey(
})
}
function
getConsumer
(
content
:
string
):
Promise
<
BasicSourceMapConsumer
|
IndexedSourceMapConsumer
>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
SourceMapConsumer
.
with
)
{
SourceMapConsumer
.
with
(
content
,
null
,
(
consumer
)
=>
{
resolve
(
consumer
)
})
}
else
{
// @ts-ignore
resolve
(
SourceMapConsumer
(
content
))
}
})
}
function
getSourceMapContent
(
sourcemapUrl
:
string
)
{
try
{
return
(
...
...
@@ -198,19 +214,21 @@ export function uniStracktraceyPreset(
const
{
base
,
sourceRoot
}
=
opts
return
{
parseSourceMapUrl
(
file
,
fileName
)
{
parseSourceMapUrl
(
file
,
fileName
,
fileRelative
)
{
// 组合 sourceMapUrl
if
(
!
base
)
return
''
file
=
(
file
.
match
(
/
(\/
.*
)
/
)
||
[])
[
1
]
if
(
!
fil
e
)
return
''
if
(
fileRelative
.
indexOf
(
'
(
'
)
!==
-
1
)
fileRelative
=
fileRelative
.
match
(
/
\((
.*
)
/
)
!
[
1
]
if
(
!
base
||
!
fileRelativ
e
)
return
''
if
(
sourceRoot
)
{
return
`
${
file
.
replace
(
sourceRoot
,
base
+
'
/
'
)}
.map`
return
`
${
file
Relative
.
replace
(
sourceRoot
,
base
+
'
/
'
)}
.map`
}
return
`
${
base
}
/
${
file
}
.map`
return
`
${
base
}
/
${
file
Relative
}
.map`
},
getSourceMapContent
(
file
,
fileName
)
{
getSourceMapContent
(
file
,
fileName
,
fileRelative
)
{
return
Promise
.
resolve
(
getSourceMapContent
(
this
.
parseSourceMapUrl
(
file
,
fileName
))
getSourceMapContent
(
this
.
parseSourceMapUrl
(
file
,
fileName
,
fileRelative
)
)
)
},
parseStacktrace
(
stacktrace
)
{
...
...
@@ -244,17 +262,19 @@ export function utsStracktraceyPreset(
let
errStack
:
string
[]
=
[]
return
{
parseSourceMapUrl
(
file
,
fileName
)
{
parseSourceMapUrl
(
file
,
fileName
,
fileRelative
)
{
// 组合 sourceMapUrl
if
(
sourceRoot
)
{
return
`
${
file
.
replace
(
sourceRoot
,
base
+
'
/
'
)}
.map`
}
return
`
${
base
}
/
${
file
}
.map`
},
getSourceMapContent
(
file
,
fileName
)
{
getSourceMapContent
(
file
,
fileName
,
fileRelative
)
{
// 根据 base,filename 组合 sourceMapUrl
return
Promise
.
resolve
(
getSourceMapContent
(
this
.
parseSourceMapUrl
(
file
,
fileName
))
getSourceMapContent
(
this
.
parseSourceMapUrl
(
file
,
fileName
,
fileRelative
)
)
)
},
parseStacktrace
(
str
)
{
...
...
packages/uni-stacktracey/test/index.js
浏览文件 @
654930b0
...
...
@@ -31,19 +31,15 @@ at HTMLElement.n(/static/js/chunk-vendors.75525bd5.js:34:13824)
at HTMLElement.o._wrapper(/static/js/chunk-vendors.75525bd5.js:34:53966)
at HTMLElement.i(/static/js/chunk-vendors.75525bd5.js:7:609894)`
/*
stacktracey(uniErrorMsg, {
stacktracey
(
uniErrorMsg
,
{
preset
:
uniStracktraceyPreset
({
base
:
path
.
resolve
(
__dirname
,
'
./__UNI__APPID__/1.0.0/.sourcemap/h5/
'
),
sourceRoot
:
''
,
}),
}).
then
((
res
)
=>
{
console
.
log
(
'
res :>>
'
,
res
)
}) */
console
.
log
(
'
path.resolve(__dirname, "./nativeplugins-sourceMap/DCloud-UTSPlugin/"), :>>
'
,
path
.
resolve
(
__dirname
,
'
./nativeplugins-sourceMap/DCloud-UTSPlugin/
'
)
)
stacktracey
(
utsErrorMsg
,
{
})
/* stacktracey(utsErrorMsg, {
preset: utsStracktraceyPreset({
base: path.resolve(
__dirname,
...
...
@@ -54,3 +50,4 @@ stacktracey(utsErrorMsg, {
}).then((res) => {
console.log('res :>> ', res)
})
*/
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录