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