提交 de5eecab 编写于 作者: Q qiang

Merge branch 'dev' into alpha

# Conflicts:
#	packages/vue-cli-plugin-uni/lib/error-reporting.js
......@@ -73,7 +73,7 @@ if (
process.env.UNI_PLATFORM === 'h5' &&
process.env.NODE_ENV === 'production'
) {
console.warn('发布H5,需要在uniCloud后台操作,绑定安全域名,否则会因为跨域问题而无法访问。教程参考:https://uniapp.dcloud.io/uniCloud/quickstart-H5')
console.warn('发布H5,需要在uniCloud后台操作,绑定安全域名,否则会因为跨域问题而无法访问。教程参考:https://uniapp.dcloud.io/uniCloud/quickstart?id=useinh5')
}
// 初始化环境变量
......
class ErrorReport {
static get instance () {
const {
normalizePath,
isInHBuilderX
} = require('@dcloudio/uni-cli-shared/lib/util');
class ErrorReport {
static get instance() {
if (this._instance == null) {
this._instance = new ErrorReport()
this._instance = new ErrorReport();
}
return this._instance
return this._instance;
}
constructor () {
this._instance = null
this._https = null
this._crypto = null
this._cacheList = []
this._isReporting = false
constructor() {
this._instance = null;
this._https = null;
this._crypto = null;
this._cacheList = [];
this._UNI_INPUT_DIR_REG = new RegExp(normalizePath(process.env.UNI_INPUT_DIR), 'g');
this._UNI_CLI_CONTEXT_REG = new RegExp(normalizePath(process.env.UNI_CLI_CONTEXT), 'g');
}
get https () {
get https() {
if (this._https == null) {
this._https = require('https')
this._https = require('https');
}
return this._https
return this._https;
}
get isInHBuilderX () {
const {
isInHBuilderX
} = require('@dcloudio/uni-cli-shared')
return isInHBuilderX
}
report (type, err) {
report(type, err) {
if (!this._shouldReport(err)) {
return
}
return;
}
err = normalizePath(err)
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({
np: process.platform,
nv: process.version,
cp: process.env.UNI_PLATFORM,
hx: this.isInHBuilderX ? 1 : 0,
hx: isInHBuilderX ? 1 : 0,
et: type,
em: err
})
});
var hash = this._getMD5(data)
var hash = this._getMD5(data);
if (this._cacheList.includes(hash)) {
return
return;
}
this._cacheList.push(hash)
this._cacheList.push(hash);
setTimeout(() => {
this._doReport(data)
}, 10)
this._doReport(data);
}, 10);
}
_doReport (data) {
_doReport(data) {
const req = this.https.request({
hostname: this.HOST,
port: 443,
......@@ -65,16 +69,16 @@ class ErrorReport {
'Content-Type': 'application/json',
'Content-Length': data.length
}
})
req.write(data)
req.end()
});
req.write(data);
req.end();
}
_shouldReport (err = '') {
_shouldReport(err = '') {
try {
const errMsg = err.toString()
const errorIndex = this.EXCLUDE_ERROR_LIST.findIndex(item => errMsg.includes(item) >= 0)
const errorIndex = this.EXCLUDE_ERROR_LIST.findIndex(item => errMsg.includes(item))
if (errorIndex >= 0) {
return false
}
......@@ -90,25 +94,25 @@ class ErrorReport {
return false
}
_getMD5 (str) {
return this.crypto.createHash('md5').update(str).digest('hex')
_getMD5(str) {
return this.crypto.createHash('md5').update(str).digest('hex');
}
get crypto () {
get crypto() {
if (this._crypto == null) {
this._crypto = require('crypto')
this._crypto = require('crypto');
}
return this._crypto
return this._crypto;
}
}
Object.assign(ErrorReport.prototype, {
HOST: '96f0e031-f37a-48ef-84c7-2023f6360c0a.bspapp.com',
PATH: '/http/uni-app-compiler',
EXCLUDE_ERROR_LIST: ['uni-app-compiler']
})
});
function report (type, err) {
ErrorReport.instance.report(type, err)
function report(type, err) {
ErrorReport.instance.report(type, err);
}
global.__error_reporting__ = report
......
......@@ -22,7 +22,8 @@ export function createRequestTaskById (requestTaskId, {
header,
method = 'GET',
responseType,
sslVerify = true
sslVerify = true,
firstIpv4 = false
} = {}) {
const stream = requireNativePlugin('stream')
const headers = {}
......@@ -75,7 +76,8 @@ export function createRequestTaskById (requestTaskId, {
// weex 官方文档未说明实际支持 timeout,单位:ms
timeout: timeout || 6e5,
// 配置和weex模块内相反
sslVerify: !sslVerify
sslVerify: !sslVerify,
firstIpv4: firstIpv4
}
if (method !== 'GET') {
options.body = typeof data === 'string' ? data : JSON.stringify(data)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册