diff --git a/packages/compiler-sfc/__tests__/compileScript.spec.ts b/packages/compiler-sfc/__tests__/compileScript.spec.ts
index c4b1c5d8..bdaef024 100644
--- a/packages/compiler-sfc/__tests__/compileScript.spec.ts
+++ b/packages/compiler-sfc/__tests__/compileScript.spec.ts
@@ -1,9 +1,10 @@
-import { parse, SFCScriptCompileOptions } from '../src'
+import { parse, SFCScriptCompileOptions, compileScript } from '../src'
import { parse as babelParse } from '@babel/parser'
import { babelParserDefautPlugins } from '@vue/shared'
function compile(src: string, options?: SFCScriptCompileOptions) {
- return parse(src, options).descriptor.scriptTransformed!
+ const { descriptor } = parse(src)
+ return compileScript(descriptor, options)
}
function assertCode(code: string) {
@@ -370,24 +371,23 @@ describe('SFC compile `)
- .errors[0].message
- ).toMatch(``)
+ ).toThrow(``).errors[0].message
- ).toMatch(`Cannot export locally defined variable as default`)
+ `)
+ ).toThrow(`Cannot export locally defined variable as default`)
})
test('export default referencing local var', () => {
- expect(
- parse(``).errors[0].message
- ).toMatch(`cannot reference locally declared variables`)
+ `)
+ ).toThrow(`cannot reference locally declared variables`)
})
test('export default referencing exports', () => {
- expect(
- parse(``).errors[0].message
- ).toMatch(`cannot reference locally declared variables`)
+ `)
+ ).toThrow(`cannot reference locally declared variables`)
})
test('should allow export default referencing scope var', () => {
@@ -458,19 +458,19 @@ describe('SFC compile
- `).errors[0].message
- ).toMatch(`Default export is already declared`)
+ `)
+ ).toThrow(`Default export is already declared`)
- expect(
- parse(`
+ expect(() =>
+ compile(`
@@ -478,33 +478,33 @@ describe('SFC compile
- `).errors[0].message
- ).toMatch(`Default export is already declared`)
+ `)
+ ).toThrow(`Default export is already declared`)
- expect(
- parse(`
+ expect(() =>
+ compile(`
- `).errors[0].message
- ).toMatch(`Default export is already declared`)
+ `)
+ ).toThrow(`Default export is already declared`)
- expect(
- parse(`
+ expect(() =>
+ compile(`
- `).errors[0].message
- ).toMatch(`Default export is already declared`)
+ `)
+ ).toThrow(`Default export is already declared`)
- expect(
- parse(`
+ expect(() =>
+ compile(`
- `).errors[0].message
- ).toMatch(`Default export is already declared`)
+ `)
+ ).toThrow(`Default export is already declared`)
})
})
})
diff --git a/packages/compiler-sfc/src/parse.ts b/packages/compiler-sfc/src/parse.ts
index 5cfbeb10..cdc5f74b 100644
--- a/packages/compiler-sfc/src/parse.ts
+++ b/packages/compiler-sfc/src/parse.ts
@@ -9,9 +9,8 @@ import {
import * as CompilerDOM from '@vue/compiler-dom'
import { RawSourceMap, SourceMapGenerator } from 'source-map'
import { TemplateCompiler } from './compileTemplate'
-import { compileScript, SFCScriptCompileOptions } from './compileScript'
-export interface SFCParseOptions extends SFCScriptCompileOptions {
+export interface SFCParseOptions {
filename?: string
sourceMap?: boolean
sourceRoot?: string
@@ -53,7 +52,6 @@ export interface SFCDescriptor {
template: SFCTemplateBlock | null
script: SFCScriptBlock | null
scriptSetup: SFCScriptBlock | null
- scriptTransformed: SFCScriptBlock | null
styles: SFCStyleBlock[]
customBlocks: SFCBlock[]
}
@@ -79,8 +77,7 @@ export function parse(
filename = 'component.vue',
sourceRoot = '',
pad = false,
- compiler = CompilerDOM,
- babelParserPlugins
+ compiler = CompilerDOM
}: SFCParseOptions = {}
): SFCParseResult {
const sourceKey =
@@ -96,7 +93,6 @@ export function parse(
template: null,
script: null,
scriptSetup: null,
- scriptTransformed: null,
styles: [],
customBlocks: []
}
@@ -198,16 +194,6 @@ export function parse(
descriptor.styles.forEach(genMap)
}
- if (descriptor.script || descriptor.scriptSetup) {
- try {
- descriptor.scriptTransformed = compileScript(descriptor, {
- babelParserPlugins
- })
- } catch (e) {
- errors.push(e)
- }
- }
-
const result = {
descriptor,
errors