Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
anyefeiyu
uni-app
提交
4dfe7a96
U
uni-app
项目概览
anyefeiyu
/
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,发现更多精彩内容 >>
提交
4dfe7a96
编写于
6月 30, 2020
作者:
d-u-a
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update: error reporting
上级
b619458a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
115 addition
and
31 deletion
+115
-31
packages/uni-cli-shared/lib/json.js
packages/uni-cli-shared/lib/json.js
+6
-1
packages/vue-cli-plugin-uni/lib/error-reporting.js
packages/vue-cli-plugin-uni/lib/error-reporting.js
+109
-30
未找到文件。
packages/uni-cli-shared/lib/json.js
浏览文件 @
4dfe7a96
...
...
@@ -13,7 +13,12 @@ function parseJson (content, preprocess = false) {
type
:
jsPreprocessOptions
.
type
})
}
content
=
JSON
.
parse
(
stripJsonComments
(
content
))
try
{
content
=
JSON
.
parse
(
stripJsonComments
(
content
))
}
catch
(
e
)
{
throw
new
Error
(
"
dcloud:parse-json-error
"
)
}
}
content
=
JSON
.
stringify
(
content
)
...
...
packages/vue-cli-plugin-uni/lib/error-reporting.js
浏览文件 @
4dfe7a96
function
shouldReport
(
err
=
''
)
{
try
{
const
errMsg
=
err
.
toString
()
// 目前简单的上报逻辑为:错误信息中包含@dcloudio包名
if
(
errMsg
.
includes
(
'
@dcloudio
'
)
&&
!
errMsg
.
includes
(
'
Errors compiling template
'
)
)
{
return
true
class
ErrorReport
{
static
get
instance
()
{
if
(
this
.
_instance
==
null
)
{
this
.
_instance
=
new
ErrorReport
();
}
}
catch
(
e
)
{}
return
false
}
return
this
.
_instance
;
}
constructor
()
{
this
.
_instance
=
null
;
this
.
_https
=
null
;
this
.
_crypto
=
null
;
this
.
_cacheList
=
[];
this
.
_isReporting
=
false
;
}
get
https
()
{
if
(
this
.
_https
==
null
)
{
this
.
_https
=
require
(
'
https
'
);
}
return
this
.
_https
;
}
get
isInHBuilderX
()
{
const
{
isInHBuilderX
}
=
require
(
'
@dcloudio/uni-cli-shared
'
)
return
isInHBuilderX
;
}
report
(
type
,
err
)
{
if
(
!
this
.
_shouldReport
(
err
))
{
return
;
}
const
data
=
JSON
.
stringify
({
np
:
process
.
platform
,
nv
:
process
.
version
,
cp
:
process
.
env
.
UNI_PLATFORM
,
hx
:
this
.
isInHBuilderX
?
1
:
0
,
et
:
type
,
em
:
err
});
var
hash
=
this
.
_getMD5
(
data
);
if
(
this
.
_cacheList
.
includes
(
hash
))
{
return
;
}
this
.
_cacheList
.
push
(
hash
);
setTimeout
(()
=>
{
this
.
_doReport
(
data
);
},
10
);
}
_doReport
(
data
)
{
const
req
=
this
.
https
.
request
({
hostname
:
this
.
HOST
,
port
:
443
,
path
:
this
.
PATH
,
method
:
'
POST
'
,
headers
:
{
'
Content-Type
'
:
'
application/json
'
,
'
Content-Length
'
:
data
.
length
}
});
req
.
write
(
data
);
req
.
end
();
}
_shouldReport
(
err
=
''
)
{
try
{
const
errMsg
=
err
.
toString
()
const
errorIndex
=
this
.
EXCLUDE_ERROR_LIST
.
findIndex
(
item
=>
errMsg
.
includes
(
item
)
>=
0
)
if
(
errorIndex
>=
0
)
{
return
false
}
// err:string|Error
function
report
(
type
,
err
)
{
if
(
shouldReport
(
err
))
{
// console.log('Error Reporting...')
// const https = require('https')
// const data = ...
// const req = https.request({
// hostname: '',
// port: 8080,
// path: '/todos',
// method: 'POST',
// headers: {
// 'Content-Type': 'application/json',
// 'Content-Length': data.length
// }
// })
// req.write(data)
// req.end()
// 目前简单的上报逻辑为:错误信息中包含@dcloudio包名
if
(
errMsg
.
includes
(
'
@dcloudio
'
)
&&
!
errMsg
.
includes
(
'
Errors compiling template
'
)
)
{
return
true
}
}
catch
(
e
)
{}
return
false
}
_getMD5
(
str
)
{
return
this
.
crypto
.
createHash
(
'
md5
'
).
update
(
str
).
digest
(
'
hex
'
);
}
get
crypto
()
{
if
(
this
.
_crypto
==
null
)
{
this
.
_crypto
=
require
(
'
crypto
'
);
}
return
this
.
_crypto
;
}
}
Object
.
assign
(
ErrorReport
.
prototype
,
{
HOST
:
"
96f0e031-f37a-48ef-84c7-2023f6360c0a.bspapp.com
"
,
PATH
:
"
/http/uni-app-compiler
"
,
EXCLUDE_ERROR_LIST
:
[
'
dcloud:parse-json-error
'
]
});
function
report
(
type
,
err
)
{
ErrorReport
.
instance
.
report
(
type
,
err
);
}
global
.
__error_reporting__
=
report
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录