提交 3555bf36 编写于 作者: D DCloud_LXH

chore: uniStracktraceyPreset use sourceRoot

上级 d5e4df8c
......@@ -35,10 +35,8 @@ describe('uni-stacktracey', () => {
test('uniStracktraceyPreset local', () => {
stacktracey(uniErrorMsg, {
preset: uniStracktraceyPreset({
base: 'D:/DCloud_local_git/uni-app-next/packages/uni-stacktracey/test',
platform: 'h5',
version: '1.0.0',
appId: '__UNI__APPID__',
base: 'D:/DCloud_local_git/uni-app-next/packages/uni-stacktracey/test/__UNI__APPID__/1.0.0/.sourcemap/h5/',
sourceRoot: '',
}),
}).then((res: string) => {
expect(res).toEqual(`Error: Sentry Error
......
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var fs = require('fs');
var StackTracey = require('stacktracey');
var sourceMap = require('source-map');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
var StackTracey__default = /*#__PURE__*/_interopDefaultLegacy(StackTracey);
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var fs = require('fs');
var StackTracey = require('stacktracey');
var sourceMap = require('source-map');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
var StackTracey__default = /*#__PURE__*/_interopDefaultLegacy(StackTracey);
const nixSlashes = (x) => x.replace(/\\/g, '/');
const sourcemapCatch = {};
function stacktracey(stacktrace, opts) {
......@@ -113,14 +113,20 @@ function parseSourceMapContent(consumer, obj) {
}
}
function uniStracktraceyPreset(opts) {
const { base, platform, version, appId } = opts;
const { base, sourceRoot } = opts;
let stack;
return {
parseSourceMapUrl(file, fileName) {
if (!platform || !version || !appId)
// 组合 sourceMapUrl
if (!base)
return '';
// 根据 base,platform,version,filename 组合 sourceMapUrl
return `${base}/${appId}/${version}/${platform}/.sourcemap/${fileName.split('.')[0]}.js.map`;
file = (file.match(/(\/.*)/) || [])[1];
if (!file)
return '';
if (sourceRoot) {
return `${file.replace(sourceRoot, base)}.map`;
}
return `${base}/${file}.map`;
},
getSourceMapContent(file, fileName) {
return Promise.resolve(getSourceMapContent(this.parseSourceMapUrl(file, fileName)));
......@@ -141,7 +147,7 @@ function utsStracktraceyPreset(opts) {
return {
parseSourceMapUrl(file, fileName) {
// 根据 base,filename 组合 sourceMapUrl
return `${opts.base}${file.replace(opts.sourceRoot, '')}.map`;
return `${file.replace(opts.sourceRoot, opts.base)}.map`;
},
getSourceMapContent(file, fileName) {
// 根据 base,filename 组合 sourceMapUrl
......@@ -199,8 +205,8 @@ function utsStracktraceyPreset(opts) {
.join('\n');
},
};
}
exports.stacktracey = stacktracey;
exports.uniStracktraceyPreset = uniStracktraceyPreset;
exports.utsStracktraceyPreset = utsStracktraceyPreset;
}
exports.stacktracey = stacktracey;
exports.uniStracktraceyPreset = uniStracktraceyPreset;
exports.utsStracktraceyPreset = utsStracktraceyPreset;
......@@ -181,24 +181,25 @@ function parseSourceMapContent(
interface UniStracktraceyPresetOptions {
base: string
appId: string
platform: string
version: string
sourceRoot: string
}
export function uniStracktraceyPreset(
opts: UniStracktraceyPresetOptions
): StacktraceyPreset {
const { base, platform, version, appId } = opts
const { base, sourceRoot } = opts
let stack: Stacktracey
return {
parseSourceMapUrl(file, fileName) {
if (!platform || !version || !appId) return ''
// 根据 base,platform,version,filename 组合 sourceMapUrl
return `${base}/${appId}/${version}/${platform}/.sourcemap/${
fileName.split('.')[0]
}.js.map`
// 组合 sourceMapUrl
if (!base) return ''
file = (file.match(/(\/.*)/) || [])[1]
if (!file) return ''
if (sourceRoot) {
return `${file.replace(sourceRoot, base)}.map`
}
return `${base}/${file}.map`
},
getSourceMapContent(file, fileName) {
return Promise.resolve(
......@@ -231,12 +232,18 @@ interface UtsStracktraceyPreset {
export function utsStracktraceyPreset(
opts: UtsStracktraceyPreset
): StacktraceyPreset {
const { base, sourceRoot } = opts
let stack: Stacktracey
let errStack: string[] = []
return {
parseSourceMapUrl(file, fileName) {
// 根据 base,filename 组合 sourceMapUrl
return `${opts.base}${file.replace(opts.sourceRoot, '')}.map`
// 组合 sourceMapUrl
if (sourceRoot) {
return `${file.replace(sourceRoot, base)}.map`
}
return `${base}/${file}.map`
},
getSourceMapContent(file, fileName) {
// 根据 base,filename 组合 sourceMapUrl
......
{"version":3,"sources":["uni-app:///webpack/bootstrap","webpack:///./src/App.vue?ab81","webpack:///./src/App.vue?86db","uni-app:///src/App.vue","webpack:///./src/App.vue?4221","uni-app:///src/store/index.js","uni-app:///src/main.js","uni-app:///src/pages.json","webpack:///./src/App.vue?c8ed","webpack:///./src/App.vue?8771","webpack:///./src/App.vue?499c"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","jsonpScriptSrc","p","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","renderjs","component","pinia","createPinia","Vue","config","productionTip","App","mpType","Sentry","init","dsn","integrations","BrowserTracing","tracingOrigins","tracesSampleRate","release","process","RELEASE","use","app","$mount","a","locales","keys","global","__uniConfig","compilerVersion","router","publicPath","debug","networkTimeout","sdkConfigs","qqMapKey","googleMapKey","locale","fallbackLocale","reduce","res","replace","messages","assign","common","nvue","__webpack_chunk_load__","require","delay","loading","render","__uniRoutes","path","alias","props","isQuit","isEntry","globalStyle","slot","meta","id","isNVue","maxWidth","pagePath","windowTop","navigationStyle","UniApp","___CSS_LOADER_API_IMPORT___","content","locals","add","default","components","_vm","this","_h","$createElement","_c","_self","attrs","keepAliveInclude","staticRenderFns"],"mappings":"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","file":"static/js/index.624b5287.js","sourceRoot":""}
\ No newline at end of file
......@@ -33,10 +33,8 @@ at HTMLElement.i(/static/js/chunk-vendors.75525bd5.js:7:609894)`
stacktracey(uniErrorMsg, {
preset: uniStracktraceyPreset({
base: 'D:/DCloud_local_git/uni-app-next/packages/uni-stacktracey/test',
platform: 'h5',
version: '1.0.0',
appId: '__UNI__APPID__',
base: 'D:/DCloud_local_git/uni-app-next/packages/uni-stacktracey/test/__UNI__APPID__/1.0.0/.sourcemap/h5/',
sourceRoot: '',
}),
}).then((res) => {
console.log('res :>> ', res)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册