From: Evan You Date: Tue, 10 Dec 2019 22:41:56 +0000 (-0500) Subject: refactor: adjust sfc compiler options X-Git-Tag: v3.0.0-alpha.0~78 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3e3188fa9fa614b36f4c0f7e543b486a4b157305;p=thirdparty%2Fvuejs%2Fcore.git refactor: adjust sfc compiler options --- diff --git a/packages/compiler-sfc/__tests__/compileTemplate.spec.ts b/packages/compiler-sfc/__tests__/compileTemplate.spec.ts index 0891bc3093..ebf6a6e40f 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 4423fe9399..4e7a1f8157 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 22056de612..edf27c075d 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,