feat(compiler-sfc): allow disabling sourcemap when not needed

This commit is contained in:
Evan You 2021-09-18 17:42:09 -04:00
parent ebe00f66dd
commit 585615beb1
2 changed files with 20 additions and 15 deletions

View File

@ -77,6 +77,10 @@ export interface SFCScriptCompileOptions {
* Production mode. Used to determine whether to generate hashed CSS variables
*/
isProd?: boolean
/**
* Enable/disable source map. Defaults to true.
*/
sourceMap?: boolean
/**
* https://babeljs.io/docs/en/babel-parser#plugins
*/
@ -127,12 +131,9 @@ export function compileScript(
let { script, scriptSetup, source, filename } = sfc
// feature flags
const enableRefTransform = !!options.refSugar || !!options.refTransform
const genSourceMap = options.sourceMap !== false
let refBindings: string[] | undefined
// for backwards compat
if (!options) {
options = { id: '' }
}
if (!options.id) {
warnOnce(
`compileScript now requires passing the \`id\` option.\n` +
@ -188,11 +189,13 @@ export function compileScript(
s.remove(0, startOffset)
s.remove(endOffset, source.length)
content = s.toString()
map = s.generateMap({
source: filename,
hires: true,
includeContent: true
}) as unknown as RawSourceMap
if (genSourceMap) {
map = s.generateMap({
source: filename,
hires: true,
includeContent: true
}) as unknown as RawSourceMap
}
}
if (cssVars.length) {
content = rewriteDefault(content, `__default__`, plugins)
@ -1307,11 +1310,13 @@ export function compileScript(
...scriptSetup,
bindings: bindingMetadata,
content: s.toString(),
map: s.generateMap({
source: filename,
hires: true,
includeContent: true
}) as unknown as RawSourceMap,
map: genSourceMap
? (s.generateMap({
source: filename,
hires: true,
includeContent: true
}) as unknown as RawSourceMap)
: undefined,
scriptAst: scriptAst?.body,
scriptSetupAst: scriptSetupAst?.body
}

View File

@ -206,10 +206,10 @@ function doCompileTemplate({
: '',
scopeId: scoped ? longId : undefined,
slotted,
sourceMap: true,
...compilerOptions,
nodeTransforms: nodeTransforms.concat(compilerOptions.nodeTransforms || []),
filename,
sourceMap: true,
onError: e => errors.push(e),
onWarn: w => warnings.push(w)
})