]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
refactor: adjust sfc compiler options
authorEvan You <yyx990803@gmail.com>
Tue, 10 Dec 2019 22:41:56 +0000 (17:41 -0500)
committerEvan You <yyx990803@gmail.com>
Tue, 10 Dec 2019 22:41:56 +0000 (17:41 -0500)
packages/compiler-sfc/__tests__/compileTemplate.spec.ts
packages/compiler-sfc/src/compileTemplate.ts
packages/compiler-sfc/src/parse.ts

index 0891bc309356409d0b4d043c468b5bccbe63e13d..ebf6a6e40fbf6ff858541f553b06677a27168098 100644 (file)
@@ -27,7 +27,7 @@ body
     p Cool Pug example!
 </template>
 `,
-    { 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(`<template lang="unknownLang">\n</template>\n`, {
     filename: 'example.vue',
-    needMap: true
+    sourceMap: true
   }).template as SFCTemplateBlock
 
   const result = compileTemplate({
index 4423fe9399893a1292d7f0176d8b0894768f5b98..4e7a1f81570cb7c53b9e686f3e30cb99e58ec47d 100644 (file)
@@ -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 }
index 22056de6129a164e421c60aba6d7dc24fb322ac8..edf27c075d9002ef78da21dc951218948186b5e3 100644 (file)
@@ -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<string, SFCDescriptor>(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,