提交 1fe62fe7 编写于 作者: fxy060608's avatar fxy060608

fix: sourcemap

上级 76dda278
......@@ -2,7 +2,12 @@ import MagicString from 'magic-string'
import { normalizePath } from '../utils'
const F = '__f__'
export function rewriteConsoleExpr(filename: string, code: string) {
export function rewriteConsoleExpr(
id: string,
filename: string,
code: string,
sourceMap: boolean = false
) {
filename = normalizePath(filename)
const re = /(console\.(log|info|debug|warn|error))\(([^)]+)\)/g
const locate = getLocator(code)
......@@ -16,7 +21,10 @@ export function rewriteConsoleExpr(filename: string, code: string) {
F + `('${type}','at ${filename}:${locate(match.index).line + 1}',`
)
}
return s.toString()
return {
code: s.toString(),
map: sourceMap ? s.generateMap({ source: id, hires: true }) : null,
}
}
function getLocator(source: string) {
......
import debug from 'debug'
import { Plugin } from 'vite'
import { Plugin, ResolvedConfig } from 'vite'
import { createFilter, FilterPattern } from '@rollup/pluginutils'
import { isJsFile, parseVueRequest } from '../utils'
import { rewriteConsoleExpr } from '../../logs/console'
import { withSourcemap } from '../../vite/utils/utils'
export interface ConsoleOptions {
filename?: (filename: string) => string
......@@ -15,9 +16,13 @@ const debugConsole = debug('vite:uni:console')
export function uniConsolePlugin(options: ConsoleOptions): Plugin {
const filter = createFilter(options.include, options.exclude)
let resolvedConfig: ResolvedConfig
return {
name: 'vite:uni-console',
enforce: 'pre',
configResolved(config) {
resolvedConfig = config
},
transform(code, id) {
if (!filter(id)) return null
if (!isJsFile(id)) return null
......@@ -32,10 +37,12 @@ export function uniConsolePlugin(options: ConsoleOptions): Plugin {
return null
}
debugConsole(id)
return {
code: rewriteConsoleExpr(filename, code),
map: null,
}
return rewriteConsoleExpr(
id,
filename,
code,
withSourcemap(resolvedConfig)
)
},
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册