diff --git a/packages/compiler-sfc/__tests__/compileTemplate.spec.ts b/packages/compiler-sfc/__tests__/compileTemplate.spec.ts
index 0891bc30..ebf6a6e4 100644
--- a/packages/compiler-sfc/__tests__/compileTemplate.spec.ts
+++ b/packages/compiler-sfc/__tests__/compileTemplate.spec.ts
@@ -27,7 +27,7 @@ body
p Cool Pug example!
`,
- { filename: 'example.vue', needMap: true }
+ { filename: 'example.vue', sourceMap: true }
).template as SFCTemplateBlock
const result = compileTemplate({
@@ -43,7 +43,7 @@ body
test('warn missing preprocessor', () => {
const template = parse(`\n\n`, {
filename: 'example.vue',
- needMap: true
+ sourceMap: true
}).template as SFCTemplateBlock
const result = compileTemplate({
diff --git a/packages/compiler-sfc/src/compileTemplate.ts b/packages/compiler-sfc/src/compileTemplate.ts
index 4423fe93..4e7a1f81 100644
--- a/packages/compiler-sfc/src/compileTemplate.ts
+++ b/packages/compiler-sfc/src/compileTemplate.ts
@@ -98,21 +98,25 @@ function doCompileTemplate({
}: TemplateCompileOptions): TemplateCompileResults {
const errors: CompilerError[] = []
- const nodeTransforms: NodeTransform[] = [transformSrcset]
+ let nodeTransforms: NodeTransform[] = []
if (isObject(transformAssetUrls)) {
- nodeTransforms.push(createAssetUrlTransformWithOptions(transformAssetUrls))
+ nodeTransforms = [
+ createAssetUrlTransformWithOptions(transformAssetUrls),
+ transformSrcset
+ ]
} else if (transformAssetUrls !== false) {
- nodeTransforms.push(transformAssetUrl)
+ nodeTransforms = [transformAssetUrl, transformSrcset]
}
const { code, map } = compiler.compile(source, {
- ...compilerOptions,
- filename,
- mode: 'module', // implies prefixIdentifiers: true
+ mode: 'module',
+ prefixIdentifiers: true,
hoistStatic: true,
cacheHandlers: true,
+ ...compilerOptions,
+ nodeTransforms: nodeTransforms.concat(compilerOptions.nodeTransforms || []),
+ filename,
sourceMap: true,
- nodeTransforms,
onError: e => errors.push(e)
})
return { code, source, errors, tips: [], map }
diff --git a/packages/compiler-sfc/src/parse.ts b/packages/compiler-sfc/src/parse.ts
index 22056de6..edf27c07 100644
--- a/packages/compiler-sfc/src/parse.ts
+++ b/packages/compiler-sfc/src/parse.ts
@@ -11,8 +11,8 @@ import LRUCache from 'lru-cache'
import { generateCodeFrame } from '@vue/shared'
export interface SFCParseOptions {
- needMap?: boolean
filename?: string
+ sourceMap?: boolean
sourceRoot?: string
pad?: boolean | 'line' | 'space'
}
@@ -55,13 +55,13 @@ const sourceToSFC = new LRUCache(SFC_CACHE_MAX_SIZE)
export function parse(
source: string,
{
- needMap = true,
+ sourceMap = true,
filename = 'component.vue',
sourceRoot = '',
pad = 'line'
}: SFCParseOptions = {}
): SFCDescriptor {
- const sourceKey = source + needMap + filename + sourceRoot + pad
+ const sourceKey = source + sourceMap + filename + sourceRoot + pad
const cache = sourceToSFC.get(sourceKey)
if (cache) {
return cache
@@ -111,7 +111,7 @@ export function parse(
}
})
- if (needMap) {
+ if (sourceMap) {
if (sfc.script && !sfc.script.src) {
sfc.script.map = generateSourceMap(
filename,