提交 a890781d 编写于 作者: d-u-a's avatar d-u-a

update: 优化编译错误上报

上级 047c6211
const {
normalizePath,
isInHBuilderX
} = require('@dcloudio/uni-cli-shared/lib/util')
} = require('@dcloudio/uni-cli-shared/lib/util')
const plp = require('@dcloudio/webpack-uni-pages-loader/package.json')
class ErrorReport {
static get instance () {
......@@ -12,7 +13,8 @@ class ErrorReport {
}
constructor () {
this._instance = null
this._instance = null
this._os = null
this._https = null
this._crypto = null
this._cacheList = []
......@@ -20,6 +22,13 @@ class ErrorReport {
this._UNI_CLI_CONTEXT_REG = new RegExp(normalizePath(process.env.UNI_CLI_CONTEXT), 'g')
}
get os () {
if (this._os == null) {
this._os = require('os')
}
return this._os
}
get https () {
if (this._https == null) {
this._https = require('https')
......@@ -36,10 +45,12 @@ class ErrorReport {
err = err.replace(this._UNI_INPUT_DIR_REG, 'UNI_INPUT_DIR')
err = err.replace(this._UNI_CLI_CONTEXT_REG, 'UNI_CLI_CONTEXT')
const data = JSON.stringify({
const data = JSON.stringify({
di: this._getMD5(this._getMac()),
np: process.platform,
nv: process.version,
cp: process.env.UNI_PLATFORM,
cp: process.env.UNI_PLATFORM,
cv: plp['uni-app'].compilerVersion,
hx: isInHBuilderX ? 1 : 0,
et: type,
em: err
......@@ -96,6 +107,25 @@ class ErrorReport {
_getMD5 (str) {
return this.crypto.createHash('md5').update(str).digest('hex')
}
_getMac () {
let mac
const network = this.os.networkInterfaces()
for (const key in network) {
const array = network[key]
for (let i = 0; i < array.length; i++) {
const item = array[i]
if (!item.family || (item.mac && item.mac === '00:00:00:00:00:00')) {
continue
}
if (item.family === 'IPv4' || item.family === 'IPv6') {
mac = item.mac
break
}
}
}
return mac
}
get crypto () {
if (this._crypto == null) {
......@@ -107,7 +137,7 @@ class ErrorReport {
Object.assign(ErrorReport.prototype, {
HOST: '96f0e031-f37a-48ef-84c7-2023f6360c0a.bspapp.com',
PATH: '/http/uni-app-compiler',
EXCLUDE_ERROR_LIST: ['uni-app-compiler']
EXCLUDE_ERROR_LIST: ['uni-app-compiler', 'Error: ENOENT: no such file or directory']
})
function report (type, err) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册