vue-class-migrator

CLI tool to help migrating vue class components to vue 3 compatible components.
3,783 71
Install
npm install vue-class-migrator
Latest Version:0.0.5
License:Apache-2.0
Last Updated:Jan 21, 2026
Links: GitHub  ·  npm
Maintainer: victorcuena

CI

npm npm

Vue Class Migrator CLI

Vue Class Migrator is a utility designed to facilitate the migration of Vue and TypeScript files using the @component decorator from vue-class-components to the defineComponent format. Under the hood, it employs ts-morph for parsing and generating files.

Installation

You can install vue-class-migrator globally using npm:

npm install -g vue-class-migrator

How to use the tool

Accepted options

  • -d: Specifies the directory you want to migrate.
  • --sfc: (Optional flag, default: false) Removes original TS and style files, generating a final Vue Single File Component (SFC).
npm run migrate -- -d <your_path>

Considerations

The tool also migrates decorators from vuex-class and vue-property-decorator.

If the tool encounters unsupported code in your class, it will produce errors. Monitor the output and verify the generated file. In such cases, you can contribute to the migrator to add support or correct the file manually.

Migration workflow recommendation

Initially, avoid using --sfc directly.

First, run the tool without it and compare the changes in the TS files using version control. If satisfied, discard the changes and rerun with --sfc.

Compatibility note

In addition to migrating the class to the defineComponent format, vue-class-migrator also migrates the following libraries out of the box.

vuex-class

Decorator Support
@State ❌ Not yet
@Getter ✅
@namespace.Getter ❌ Not yet
@Action ✅
@Mutation ✅

vue-property-decorator

Decorator Support
@Prop ✅
@PropSync ✅
@Model ✅
@ModelSync ✅
@Watch ✅
@Provide ❌ Not yet
@Inject ❌ Not yet
@ProvideReactive ❌ Not yet
@InjectReactive ❌ Not yet
@Emit ❌ Not yet
@Ref ✅
@VModel ❌ Not yet
@Component ✅
@Mixins ✅

Security

For security matters please contact security@getyourguide.com.

Copyright 2023 GetYourGuide GmbH.

vue-class-migrator is licensed under the Apache License, Version 2.0. See LICENSE for the full text.

Related Packages

vue-class-component

ES201X/TypeScript class decorator for Vue components

18,041,152 5,745
pinia-class-component

ECMAScript / TypeScript decorator for class-style Pinia store.

47,479 39
@havunen/vue2-class-component

ES201X/TypeScript class decorator for Vue components

450 5,745
vuex-class-modules

Typescript class decorators for class-style vuex modules.

160,633 192

Version History

Version Released License
0.0.5 Apache-2.0
0.0.4 Apache-2.0
0.0.3 Apache-2.0
0.0.2 Apache-2.0