Vue CLI plugin that adds comprehensive TypeScript support to Vue.js projects with webpack configuration, project scaffolding, and build optimization.
npx @tessl/cli install tessl/npm-vue--cli-plugin-typescript@5.0.0Vue CLI TypeScript Plugin adds comprehensive TypeScript support to Vue.js projects. It provides webpack configuration, project scaffolding, file conversion capabilities, and build optimization features including caching and parallel processing.
vue add typescript or npm install @vue/cli-plugin-typescriptAs a Vue CLI plugin, this package exports functions that integrate with the Vue CLI ecosystem:
// Main plugin function (webpack configuration)
const plugin = require('@vue/cli-plugin-typescript');
// Generator function (project scaffolding)
const generator = require('@vue/cli-plugin-typescript/generator');
// Prompts configuration
const prompts = require('@vue/cli-plugin-typescript/prompts');This plugin is typically added to Vue CLI projects via the Vue CLI command:
# Add TypeScript support to an existing Vue project
vue add typescript
# Create new Vue project with TypeScript
vue create my-project --default
# Then add TypeScript
cd my-project
vue add typescriptThe plugin automatically configures:
The plugin consists of several key components:
Main plugin function that configures webpack for TypeScript support with performance optimizations.
/**
* Main plugin function that configures webpack for TypeScript compilation
* @param api - Vue CLI service API instance
* @param projectOptions - Project configuration options
*/
function plugin(api, projectOptions): void;Generator function for scaffolding TypeScript support in Vue projects with dependency management and template rendering.
/**
* Generator function for adding TypeScript support to Vue projects
* @param api - Generator API instance
* @param options - TypeScript configuration options
* @param rootOptions - Root project options
* @param invoking - Whether plugin is being invoked late
*/
function generator(
api,
options: GeneratorOptions,
rootOptions?: RootOptions,
invoking?: boolean
): void;
interface GeneratorOptions {
classComponent?: boolean;
skipLibCheck?: boolean;
convertJsToTs?: boolean;
allowJs?: boolean;
}
interface RootOptions {
vueVersion?: string;
[key: string]: any;
}Utilities for converting JavaScript files to TypeScript during project setup.
/**
* Converts JavaScript files to TypeScript
* @param api - Generator API instance
* @param options - Conversion options
*/
function convert(api, options: ConvertOptions): void;
interface ConvertOptions {
convertJsToTs?: boolean;
}Migration utilities for upgrading existing projects to TypeScript.
/**
* Migrates existing projects to TypeScript support
* @param api - Migrator API instance
* @param options - Migration options
* @param rootOptions - Root project options
*/
function migrator(api, options: any, rootOptions: RootOptions): void;/**
* Configuration prompts for plugin installation
* Array of prompt definitions for user configuration during installation
*/
const prompts: PromptDefinition[];
interface PromptDefinition {
name: string;
type: string;
message: string;
default?: boolean;
}Available Prompts:
classComponent: Use class-style component syntaxuseTsWithBabel: Use Babel alongside TypeScriptconvertJsToTs: Convert all .js files to .tsallowJs: Allow .js files to be compiledskipLibCheck: Skip type checking of declaration filesRuntime Dependencies:
@babel/core: Babel core for JavaScript compilationfork-ts-checker-webpack-plugin: Off-thread TypeScript type checkingts-loader: TypeScript loader for webpackthread-loader: Multi-threaded webpack loaderbabel-loader: Babel integrationglobby: File pattern matching utilities@vue/cli-shared-utils: Vue CLI utility functionsPeer Dependencies:
@vue/cli-service: Vue CLI service (^3.0.0 || ^4.0.0 || ^5.0.0-0)typescript: TypeScript compiler (>=2)vue: Vue.js framework (^2 || ^3.2.13)cache-loader: Build caching (optional)vue-template-compiler: Vue 2 template compiler (optional)