refactor: adjust sfc compiler options
This commit is contained in:
parent
95b2cb6fd2
commit
3e3188fa9f
@ -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({
|
||||
|
@ -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 }
|
||||
|
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user