compile-vue-sfc
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

compile-vue-sfc

A utility function for compiling a Vue SFC into a JavaScript file and an optional TypeScript declarations file.

Installation

npm install compile-vue-sfc

How it Works

TypeScript Definitions

TypeScript definitions are generated with vue-tsc. However, TypeScript unfortunately doesn't support specifying individual files for compilation in combination with a tsconfig.json file. Thus, in order to work around this limitation, a temporary tsconfig.json file needs to be created specifying the .vue file explicitly within an extra includes property. But, creating a temporary tsconfig.json on disk is slow and error-prone, so instead, we call a wrapper script which overrides fs.readFileSync to provide a "virtual" tsconfig.json file with the appropriate before it invokes vue-tsc.

Unfortunately, for an unknown reason, whenever multiple .vue files are specified, vue-tsc encounters an infinite loop and never exits. Thus, each Vue SFC needs to be compiled separately (if there is a solution to this, please let me know!)

In addition, since TypeScript doesn't provide a way to export declarations via standard out, we also have to monkey-patch fs.writeSync to save the declaration output to a temporary variable before outputting it from our wrapper script.

Readme

Keywords

none

Package Sidebar

Install

npm i compile-vue-sfc

Weekly Downloads

1,125

Version

0.2.0

License

MIT

Unpacked Size

283 kB

Total Files

15

Last publish

Collaborators

  • leonsilicon