vuejs / vue-component-compiler

Compile a single file Vue component into a CommonJS module.
MIT License
343 stars 52 forks source link

typescript support #30

Closed davidm-public closed 6 years ago

davidm-public commented 6 years ago

Hi, curious whether this project will support lang="ts" ?

Thanks

eddyerburgh commented 6 years ago

It's left up to the user to preprocess script/ style blocks.

The API is something like this:

const descriptor = parse(source)

// 2. pre-processors
// preProcessStyles, preProcessScript, and preProcessTemplate must be implemented by the user
// You would compile typescript in the preProcessScript function
const processedStyles = preProcessStyles(descriptor.styles)
const processedScript = preProcessScript(descriptor.script)
const processedTemplate = preProcessTemplate(descriptor.template)

// 3. vue-specific post processing
// equivalent: vue-loader/lib/style-compiler
const finalStyles = compileStyles(processedStyles)
// equivalent: vue-loader/lib/template-compiler
const renderFns = compileTemplate(processedTemplate)

// 4. assemble final component
// equivalent: parts of vue-loader/lib/loader.js and vue-loader/component-normalizer.js
const finalComponentCode = assemble(processedScript, renderFns, finalStyles)