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`, { 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,