Skip to content
CAI
Software that uses CAICheck a score

vuejs/vue-cli

43.1

Weak · 25 September 2026

36.7k

lines of production code

JavaScript

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This release introduces comprehensive support for Vue 3, featuring a redesigned CLI interface with interactive prompts for all major features including TypeScript, PWA, and E2E testing. The Vue CLI UI has been completely overhauled with a new dashboard, widget system, and improved project management. Additionally, the release adds dedicated plugins for WebdriverIO, Jest, and Mocha, while refactoring the internal architecture for better modularity and test coverage.

Features

Add @vue/cli-init package to alias vue init

A new @vue/cli-init package is introduced, providing an alias for the legacy vue-cli@2.x vue init command. The package's entry point (index.js) delegates execution to the vue-cli binary, and an .npmignore file is added to exclude test and mock directories from the published package.

packages/@vue/cli-init · high confidence

Add @vue/cli-plugin-e2e-webdriverio for end-to-end testing

A new plugin is introduced to integrate WebdriverIO into Vue CLI projects, enabling users to run end-to-end tests via the \vue-cli-service test:e2e\ command. The plugin scaffolds a \tests/e2e\ directory structure with example specs and page objects, and generates WebdriverIO configuration files (\wdio.local.conf.js\, \wdio.sauce.conf.js\, etc.). It also adds interactive prompts to let users select which browsers (Chrome, Firefox) to target for their E2E tests.

packages/@vue/cli-plugin-e2e-webdriverio · high confidence

Add @vue/cli-plugin-unit-jest plugin

The @vue/cli-plugin-unit-jest package is introduced, providing the \vue-cli-service test:unit\ command to run unit tests with Jest. The plugin registers the test command, configures Jest to run in the same process, and supports TypeScript and Babel transpilation. It also includes a UI task definition for the Vue CLI UI, allowing users to configure watch mode, notifications, and snapshot updates. Documentation and npmignore rules are added to support the new plugin.

packages/@vue/cli-plugin-unit-jest · high confidence

Add JavaScript-to-TypeScript conversion utility for Vue CLI projects

The TypeScript plugin now includes a new generator that can automatically convert existing JavaScript files to TypeScript. This feature is controlled by the \convertJsToTs\ option, which, when enabled, renames \.js\ files to \.ts\ (excluding specific paths like \tests/e2e/\ or config files). The generator also configures dependencies such as \typescript\, \vue-class-component\, and \vue-property-decorator\ based on the project's Vue version and selected plugins (Mocha, Jest, WebdriverIO, ESLint).

packages/@vue/cli-plugin-typescript/generator · high confidence

Add TypeScript declarations and test utilities to @vue/cli-test-utils

The @vue/cli-test-utils package now includes TypeScript declaration files (.d.ts) for all its exported modules, such as createTestProject, generateWithPlugin, and serveWithPuppeteer. This enables TypeScript users to get proper type checking and autocompletion when using these test utilities. Additionally, a TypeScript test file (cli-test-utils-test.ts) and a tsconfig.json have been added to verify the type definitions.

packages/@vue/cli-test-utils · high confidence

Add TypeScript plugin migrator for Vue 3 shim updates

A new migrator script has been added to the @vue/cli-plugin-typescript package. This script updates the project's TypeScript dependency and, for projects targeting Vue 3, applies a codemod to update the \src/shims-vue.d.ts\ file, ensuring compatibility with the latest TypeScript definitions.

packages/@vue/cli-plugin-typescript/migrator · high confidence

Add TypeScript type declarations for @vue/cli

New TypeScript declaration files have been added to the @vue/cli package, providing type definitions for the CLI test utilities and the Generator API. This includes the \cli-test.ts\ and \index.d.ts\ files, which define the structure for prompt modules, generator plugins, and related interfaces like \ExtendPackageOptions\ and \RenderSource\. These changes enable better type checking and autocompletion for developers using the Vue CLI API.

packages/@vue/cli/types · high confidence

Add Vue CLI UI entry point HTML template

A new index.html template has been added to the Vue CLI UI public directory, establishing the root HTML structure for the application. This includes standard meta tags for charset, compatibility, and viewport, a dynamic favicon link, the application title, and the root div for the Vue app.

packages/@vue/cli-ui/public · high confidence

Add Vue CLI plugin for Nightwatch e2e testing

The \@vue/cli-plugin-e2e-nightwatch\ package is introduced, providing an end-to-end testing plugin for Vue CLI projects using Nightwatch.js. It registers the \vue-cli-service test:e2e\ command, which automatically starts the dev server, validates installed browser versions (e.g., Chrome/chromedriver compatibility), and runs tests. The plugin supports headless mode, parallel test execution, and custom configurations via \--config\ or \nightwatch.conf.js\. It also includes a UI task description and prompts for selecting browsers.

packages/@vue/cli-plugin-e2e-cypress, packages/@vue/cli-plugin-e2e-nightwatch · high confidence

Add WebdriverIO configuration templates for local and Sauce Labs testing

The Vue CLI e2e-webdriverio plugin now generates three new configuration files for WebdriverIO: a shared base config (wdio.shared.conf.js), a local testing config (wdio.local.conf.js) that dynamically includes browser drivers and capabilities based on user selection, and a Sauce Labs integration config (wdio.sauce.conf.js) that configures headless execution and platform-specific capabilities. These templates enable users to run end-to-end tests locally or on Sauce Labs with minimal setup.

packages/@vue/cli-plugin-e2e-webdriverio/generator/template · high confidence

Add default index.html template with noscript fallback

The Vue CLI generator now includes a default public/index.html template. This template sets the page title from the project configuration, links the favicon, and includes a \<noscript\> message informing users that the application requires JavaScript to function properly.

packages/@vue/cli-service/generator/template/public · medium confidence

Add help, inspect, and serve commands to @vue/cli-service

The @vue/cli-service package now includes three new commands: 'help' displays a list of available CLI commands and their descriptions, or detailed usage for a specific command; 'inspect' allows users to view the internal webpack configuration, with options to filter by rule, plugin, or path, and to output verbose function definitions; 'serve' starts the development server, supporting options for host, port, HTTPS, public URL, and skipping plugins. These commands are now available via the vue-cli-service CLI.

packages/@vue/cli-service/lib/commands · high confidence

Add webpack UI addon with dashboard, analyzer, and localization

The Vue CLI UI now includes a new webpack addon that provides a dashboard and analyzer for webpack builds, along with a test view. The addon registers components for the dashboard and analyzer, adds routes for the webpack section, and loads localization files for internationalization.

packages/@vue/cli-ui-addon-webpack/src · medium confidence

Add webpack.config.js to expose CLI service configuration

A new webpack.config.js file has been added to the @vue/cli-service package. This file allows access to the webpack configuration as a file when using CLI commands, initializing the service with the appropriate mode and context. Additionally, an .npmignore file was added to exclude \_\tests\\_ and \_\mocks\\_ directories from the published package, and a README.md was added with basic documentation and links to the full docs.

packages/@vue/cli-service · high confidence

Added TypeScript declarations for @vue/cli-service

The @vue/cli-service package now includes TypeScript type definitions for the CLI service API and project configuration options. Developers using TypeScript will receive improved autocomplete and type-checking for vue.config.js, the PluginAPI, and the defineConfig helper. The types cover webpack configuration, dev server options, linting settings, and plugin registration methods.

packages/@vue/cli-service/types · high confidence

Added jsconfig.json and updated .gitignore for Vue CLI templates

The Vue CLI service generator now includes a jsconfig.json file in the template, configuring TypeScript compiler options for JavaScript projects with support for ES6+ targets, module resolution, and path aliases for the src directory. Additionally, the .gitignore template has been updated to exclude editor-specific files (such as .idea, .vscode, and various swap files), npm/yarn/pnpm debug logs, and environment-specific env files. The gitignore also now conditionally excludes E2E test reports, video, screenshots, and log files depending on which E2E plugin (Nightwatch, Cypress, or WebdriverIO) is selected.

packages/@vue/cli-service/generator/template · medium confidence

Added new UI components for the project navigation sidebar

Introduced four new Vue components in the CLI UI: ViewBadge for displaying status indicators, ViewNav for the main navigation sidebar, ViewNavButton for individual navigation items with tooltips and badges, and ViewNavMore for the overflow menu. These components implement the visual structure and interactivity of the redesigned dashboard's left-hand navigation, including support for dark mode, responsive layouts, and dynamic badge rendering.

packages/@vue/cli-ui/src/components/view · high confidence

Added service worker registration for PWA support

A new file, registerServiceWorker.js, has been added to the project template. This script registers the service worker in production environments, enabling Progressive Web App capabilities such as offline caching, background updates, and improved performance. Users will now see console logs indicating the status of the service worker, including when content is cached, updated, or when the app is running offline.

packages/@vue/cli-plugin-pwa/generator/template/src · high confidence

Added vulnerability audit and module analysis utilities

New utility modules were added to the UI defaults to support vulnerability auditing and module size analysis. The new \audit.js\ file implements logic to detect and parse security advisories from Yarn, while explicitly returning 'not implemented' errors for PNPM and NPM projects. The \modules.js\ and \stats.js\ files introduce functions to filter, sort, and aggregate module data by size type (stats, parsed, gzip), enabling the UI to display module size breakdowns and dependency trees.

packages/@vue/cli-ui/ui-defaults/utils · high confidence

Automatic migration of Babel preset references

The Vue CLI Babel plugin now includes a codemod that automatically updates Babel preset configurations. It replaces the legacy \@vue/app\ and \@vue/babel-preset-app\ preset names with the new \@vue/cli-plugin-babel/preset\. This change ensures that existing Babel configurations are updated to use the correct, current preset package, preventing build errors or unexpected behavior after upgrading.

packages/@vue/cli-plugin-babel/codemods · high confidence

Cypress e2e plugin generator and migrator added

The @vue/cli-plugin-e2e-cypress package now includes generator and migrator scripts. The generator creates a template directory and configures the project to include Cypress as a peer dependency and adds a 'test:e2e' script. The migrator checks for existing Cypress installations and adds the dependency if missing, ensuring consistent e2e testing setup for new and existing projects.

packages/@vue/cli-plugin-e2e-cypress/generator · high confidence

Initial Vue CLI UI application shell and routing

The Vue CLI UI application is initialized with a new entry point (main.js) that mounts the root App component, registers global plugins (including vue-apollo, vue-meta, and custom filters), and sets up the Vue Router with routes for project selection, creation, dashboard, plugins, configurations, tasks, and dependencies. The app integrates internationalization (i18n) with automatic locale detection and loading, manages global state (connection status, loading, dark mode) via GraphQL mutations and resolvers, and handles client addon loading and locale initialization.

packages/@vue/cli-ui/src · high confidence

Initial release of the @vue/cli-plugin-typescript plugin

The @vue/cli-plugin-typescript plugin is now available, enabling TypeScript support in Vue CLI projects. It configures webpack to handle .ts and .tsx files using ts-loader, fork-ts-checker-webpack-plugin for type checking, and optionally Babel for transpilation. Users can configure TypeScript via tsconfig.json, enable parallelization with thread-loader, and choose options like class-style components, Babel integration, and skipping library checks during setup.

packages/@vue/cli-plugin-typescript · high confidence

Introduce @vue/babel-preset-app package

The @vue/babel-preset-app package is introduced as the default Babel preset for Vue CLI projects. It configures @babel/preset-env with sensible defaults, including useBuiltIns: 'usage' for automatic polyfill injection, support for Vue JSX, and specific polyfills (Promise, Object.assign, etc.) to ensure compatibility with target environments. The preset also supports options like loose mode, entryFiles for explicit polyfill injection, and absolute path handling for runtime helpers.

packages/@vue/babel-preset-app, packages/@vue/cli-shared-utils · high confidence

Introduce @vue/cli-plugin-unit-mocha for running unit tests with Mocha

Adds the @vue/cli-plugin-unit-mocha plugin, which enables running unit tests using Mocha (via mochapack) within the Vue CLI workflow. The plugin registers the 'vue-cli-service test:unit' command, which executes tests in a Node.js environment with JSDOM simulating a browser. It configures webpack for test mode, disables SSR optimization for Vue 3, and sets up global mocks (e.g., ShadowRoot, SVGElement, XMLSerializer) to address known issues with Vue Test Utils and JSDOM. The plugin also provides a UI task description for the Vue CLI UI.

packages/@vue/cli-plugin-unit-mocha · high confidence

Introduce Jest unit testing plugin with Vue 3 and TypeScript support

The Vue CLI now includes a dedicated Jest plugin that scaffolds a complete unit testing environment. It automatically configures Jest 27 with appropriate presets for Babel or TypeScript, and integrates @vue/test-utils (v1 for Vue 2, v2 for Vue 3). The generator also sets up ESLint overrides for test files and injects Jest type definitions into tsconfig.json when TypeScript is detected.

packages/@vue/cli-plugin-unit-jest/generator · high confidence

Introduce PWA plugin with TypeScript support

The PWA plugin now includes a new generator script that automatically registers the service worker and adds the 'register-service-worker' dependency. For projects using TypeScript, the plugin automatically converts relevant files to TypeScript, ensuring compatibility with the TypeScript plugin.

packages/@vue/cli-plugin-pwa/generator · high confidence

Introduce WebdriverIO-based E2E testing plugin for Vue CLI

A new E2E testing plugin based on WebdriverIO has been added to Vue CLI. The plugin generates the necessary configuration and dependencies for running end-to-end tests using WebdriverIO, supporting both JavaScript and TypeScript projects. For TypeScript projects, it automatically configures the tsconfig.json to include relevant type definitions (such as mocha and webdriverio/sync) and adds required dev dependencies like ts-node. The plugin also conditionally includes browser-specific drivers (GeckoDriver for Firefox, Chromedriver for Chrome) and their corresponding WebdriverIO services, ensuring that the testing environment is properly set up for the selected browsers.

packages/@vue/cli-plugin-e2e-webdriverio/generator · high confidence

Introduce local development and configuration scaffolding for @vue/cli-ui

The @vue/cli-ui package now includes a full local development environment and configuration scaffolding. This adds environment files (.env.development, .env.production) to manage runtime variables, a dedicated .eslintrc.js for linting, and a cypress.json for end-to-end testing. The package also provides a graphql-server.js to bootstrap the Apollo server, an index.js to configure the client addon, and a ui-dev.js that registers a test view and hooks for plugin development. Additionally, vue.config.js is added to configure Webpack, Stylus imports, and disable parallelism in CI environments, while README.md and .gitignore are included to support local development workflows.

packages/@vue/cli-ui · high confidence

Introduce modern mode and bundle analysis capabilities

Added support for modern JavaScript builds that use ES modules with \\<script type="module"\>\ and \\<link rel="modulepreload"\>\ for modern browsers, while providing legacy \\<script nomodule\>\ bundles for older browsers. This includes the \ModernModePlugin\ to handle dual builds, a \SafariNomoduleFixPlugin\ to patch Safari 10 compatibility, and a \CorsPlugin\ to manage CORS and Subresource Integrity (SRI) headers in the generated HTML. Additionally, the \DashboardPlugin\ and \analyzeBundle\ utility were introduced to provide real-time build progress updates and detailed bundle size analysis.

packages/@vue/cli-service/lib/webpack · high confidence

Introduce webpack dashboard addon with dedicated config and linting

The @vue/cli-ui-addon-webpack package is introduced, providing dashboard and analyzer components for the Vue CLI UI. This change adds a new addon structure including a vue.config.js that registers the client addon on port 8096, a babel configuration, and an ESLint configuration that enforces multi-word component names and uses the @babel/eslint-parser. Additionally, a README and .gitignore are added to the package, and a .gitkeep file is moved to the public directory.

packages/@vue/cli-ui-addon-webpack · medium confidence

Introduces PWA plugin with configurable meta tags and service worker support

The @vue/cli-plugin-pwa package now includes a new HtmlPwaPlugin that injects configurable meta tags (theme color, Apple/Windows headers) and links to a manifest.json. It also adds a noopServiceWorker and middleware to handle service worker resets during development, improving installability and preventing conflicts with production service workers.

packages/@vue/cli-plugin-pwa/lib · medium confidence

New ESLint configuration UI with rule-level controls

The ESLint plugin now provides a dedicated UI for configuring ESLint, allowing users to select a base configuration (essential, strongly-recommended, recommended, or uncategorized) and individually set the severity (off, error, or warning) for each Vue.js rule. This replaces the previous approach where base rules were removed from the UI, enabling more granular control over linting behavior directly from the CLI.

packages/@vue/cli-plugin-eslint/ui · high confidence

New GraphQL schema for the Vue CLI UI dashboard

The Vue CLI UI has been updated with a comprehensive set of new GraphQL queries, mutations, and subscriptions to support the redesigned dashboard. This change introduces the underlying data layer for managing projects, plugins, tasks, and widgets, enabling the new UI to fetch and update state in real-time.

packages/@vue/cli-ui/src/graphql · high confidence

New UI components for project configuration and logging

The Vue CLI UI dashboard now includes new components for managing project configurations and viewing logs. Users can browse and edit project configurations through a new 'Project Configurations' view, which supports searching and selecting specific configurations. Additionally, a 'Logger View' has been added to display console logs with support for different message types (info, warn, error) and tags, allowing users to monitor and clear logs directly from the UI.

(repo-wide) · high confidence

New Vue CLI UI defaults and widgets for configuration, tasks, and project insights

The Vue CLI UI now includes a new \ui-defaults\ module that registers the main configuration panel for \vue.config.js\ (exposing options like \publicPath\, \outputDir\, \assetsDir\, \runtimeCompiler\, \productionSourceMap\, \parallel\, and CSS settings). It also adds suggestions to install \vue-router\ and \vuex\ via the project plugins view, and introduces several new dashboard widgets: a webpack dashboard and analyzer, a kill-port utility, plugin and dependency update checkers, a vulnerability audit widget, a run-task widget, and a news feed. These changes provide in-UI access to common Vue CLI settings and project maintenance tools.

packages/@vue/cli-ui/ui-defaults · high confidence

New Vue.js widgets for dashboard and plugin management

The Vue.js UI addon now registers a set of new components including Welcome, KillPort, PluginUpdates, DependencyUpdates, Vulnerability, VulnerabilityDetails, RunTask, and News, making them available as widgets in the dashboard.

packages/@vue/cli-ui-addon-widgets/src · medium confidence

New asset analysis and theming utilities

Added new utility modules for the Vue CLI UI addon: \assets.js\ introduces functions to calculate download times and sort assets by size, while \colors.js\ defines color palettes for both light and dark modes. These utilities support the UI's asset inspection and theming capabilities.

packages/@vue/cli-ui-addon-webpack/src/util · high confidence

New build targets for libraries and web components with improved output formatting

The Vue CLI service now supports building libraries (\--target lib\) and web components (\--target wc\ / \--target wc-async\) with dedicated entry points and demo HTML templates. Library builds can specify output formats (CommonJS, UMD) and include optional demo pages. Web component builds support both sync and async loading, with dynamic component registration. The build output now displays formatted statistics (file size, gzipped size) in a structured table, and uses \fs-extra\ for file operations. The \--report\ and \--report-json\ flags generate bundle analysis reports.

packages/@vue/cli-service/lib/commands/build · high confidence

New client-addon loading and rendering components

Added two new Vue components in the client-addon directory: ClientAddonComponent, which handles the dynamic rendering of client addons with a 5-second timeout fallback, and ClientAddonLoader, which subscribes to GraphQL queries and mutations to dynamically load addon scripts into the DOM.

packages/@vue/cli-ui/src/components/client-addon · high confidence

New content and folder explorer UI components

The Vue CLI UI dashboard received a suite of new UI components to enhance the user interface. In the content area, new components were added: ContentView for structured content display, ItemLogo for displaying item icons or images, ListFilter and ListSort for list manipulation, NavContent and NavList for navigation, StepWizard for multi-step processes, and TerminalView which includes a copy-to-clipboard feature for terminal output. Additionally, new FolderExplorer and FolderExplorerItem components were introduced to provide a file system browser with features like path editing, folder favoriting, and hidden file visibility toggling.

packages/@vue/cli-ui/src/components/content · high confidence

New dashboard widgets for updates, security, and news

The Vue CLI UI now includes several new dashboard widgets: a News widget that fetches and displays RSS feed items with details; a Vulnerability widget that reports security issues with severity levels and recommendations; a DependencyUpdates widget for tracking dependency updates; a PluginUpdates widget for plugin updates; a KillPort widget to terminate processes on specific ports; a RunTask widget to execute project tasks; and a Welcome widget with tips for new users. These components introduce new UI elements in the dashboard to provide immediate visibility into project status, security, and news.

packages/@vue/cli-ui-addon-widgets/src/components · high confidence

New dependency management interface with search and install capabilities

The dependency management section has been redesigned with a new search interface for installing and managing project dependencies. Users can now search for npm packages via an integrated search component that displays package details, versions, and download counts. The main dependencies list now includes buttons to update or uninstall packages, and a modal dialog allows users to search for and install new plugins or dependencies directly from the UI.

packages/@vue/cli-ui/src/components/dependency · high confidence

New file-diff components for viewing code changes

The file-diff directory now contains new Vue components (FileDiff, FileDiffChange, FileDiffChunk, FileDiffView) that render a list of file diffs with a toolbar for searching, expanding/collapsing, and committing changes. The view includes a commit modal for entering a commit message and buttons to commit or skip changes, providing a dedicated UI for reviewing and committing file differences.

packages/@vue/cli-ui/src/components/file-diff · medium confidence

New internal scripts for release, testing, and maintenance

The repository now includes a suite of new internal scripts to support the development workflow. The \release.js\ script automates the version bumping and publishing process using Lerna, while \syncDeps.js\ synchronizes dependency versions across the monorepo. A new \test.js\ script provides a unified entry point for running Jest tests, including support for e2e-only execution. Maintenance is supported by \genChangelog.js\ for automated changelog generation, \buildEditorConfig.js\ to generate \.editorconfig\ files from ESLint configs, and \checkLinks.js\ to validate internal links. Additionally, \scripts/e2e-test/\ contains shell scripts to manage a local npm registry (Verdaccio) and git state for end-to-end testing, and \verifyCommitMsg.js\ enforces a specific commit message format.

scripts · high confidence

New prompt UI components for the Vue CLI UI dashboard

A new set of Vue components has been added to the CLI UI to render interactive prompts. This includes a base Prompt component and specific renderers for checkboxes, color pickers, confirmations, text editors, standard inputs, and list selections, all grouped and displayed via a new PromptsList component. This enables the UI to display and collect user input for various prompt types directly within the dashboard interface.

packages/@vue/cli-ui/src/components/prompt · high confidence

New task management interface in the Vue CLI UI

Added new Vue components (ProjectTaskDetails, ProjectTasks, TaskItem) that provide a dedicated interface for managing project tasks. Users can now view a searchable list of tasks, see their status and details, and execute or stop tasks directly from the UI. The component also supports displaying task output via a terminal view and allows users to configure task parameters through a modal dialog.

packages/@vue/cli-ui/src/components/task · high confidence

New utility modules for client add-ons, shared data, and UI helpers

The Vue CLI UI now includes a suite of new utility modules in the \src/util\ directory to support client add-ons and UI enhancements. This introduces a \ClientAddonApi\ class that allows plugins to register global Vue components, add routes under \/addon/\<id\>\, and merge localization strings. A \shared-data\ module provides two-way synchronization of shared state between the client and server via GraphQL subscriptions, exposing methods like \$getSharedData\, \$setSharedData\, and \$watchSharedData\ on Vue instances. Additional utilities include an event bus (\bus\), an ANSI color formatter (\ansi-colors\), a focus directive (\focus\), folder name validation (\folders\), image URL resolution (\image\), plugin action handlers (\plugin-action\), responsive state tracking (\responsive\), route comparison helpers (\route\), search regex generation (\search\), and a directive for setting element sizes (\set-size\).

packages/@vue/cli-ui/src/util · high confidence

New webpack dashboard with build progress, asset analysis, and module breakdown

The Vue CLI UI now includes a dedicated webpack dashboard that displays build status, progress indicators, and detailed statistics about assets and modules. Users can view build status, errors, warnings, and asset sizes in a new dashboard view. The dashboard includes components for tracking build progress, analyzing asset sizes and download speeds, and exploring module dependencies. This provides better visibility into the webpack build process and bundle composition.

packages/@vue/cli-ui-addon-webpack/src/components · high confidence

Redesign of \`vue upgrade\` and \`vue migrate\` commands with dedicated Upgrader and Migrator classes

The \vue upgrade\ and \vue migrate\ commands have been redesigned to support code migration and monorepo workflows. The \Upgrader\ class now handles the logic for checking and upgrading plugins, including a new \--from\ option to specify the current version for upgrades, and supports checking for beta/next versions via the \--next\ flag. The \Migrator\ class and \migrate\ command allow plugins to provide codemods that transform project files during upgrades. This enables a smoother upgrade path where plugins can automatically refactor code to match new API requirements.

packages/@vue/cli/lib · high confidence

Redesigned dashboard with customizable widgets

The project dashboard has been redesigned to support a new widget-based layout. Users can now add, configure, and manage widgets on the main dashboard view. The update introduces a 'customize' mode that allows users to rearrange, resize, and remove widgets, as well as view detailed information about each widget in a dedicated side panel. This change replaces the previous static dashboard layout with a more flexible and interactive interface for managing project-specific data and plugins.

packages/@vue/cli-ui/src/components/dashboard · high confidence

Redesigned dashboard with new app-level components

The Vue CLI UI dashboard has been redesigned, introducing a suite of new components for the application shell: About, AppLoading, ConnectionStatus, LocaleLoader, NotFound, ProgressScreen, ProjectHome, ProjectQuickDropdown, StatusBar, and TopBar. These components collectively provide the updated user interface for the main application view, including project selection, status indicators, and navigation.

packages/@vue/cli-ui/src/components/app · high confidence

Redesigned project creation interface with new options

The project creation flow in the Vue CLI UI has been redesigned, introducing a new multi-step wizard for setting up a new project. Users can now configure project details such as folder name, package manager (npm, yarn, or pnpm), and various options including a 'bare' mode and Git initialization. The interface also allows selection of presets and features, providing a more guided and flexible project scaffolding experience.

packages/@vue/cli-ui/src/components/project-create · high confidence

Vue CLI PWA plugin initial implementation

The \@vue/cli-plugin-pwa\ package is introduced, providing Progressive Web App support for Vue CLI projects. This includes a new plugin entry point (\index.js\) that configures Webpack to generate service workers via the \workbox-webpack-plugin\ and injects PWA-related tags into the HTML head. A UI configuration module (\ui.js\) is added to allow users to interactively configure PWA options such as the Workbox plugin mode, app name, theme colors, and manifest crossorigin settings through the Vue CLI UI. Additionally, a README and \.npmignore\ file are added to document the plugin's capabilities and exclude test files from the package.

packages/@vue/cli-plugin-pwa · high confidence

Vue CLI service generator now supports Vue 3 and configurable CSS preprocessors

The Vue CLI service generator has been updated to support Vue 3 projects, automatically configuring the 'vue' dependency to version ^3.2.13 for Vue 3 templates, while maintaining ^2.6.14 for Vue 2. The generator now includes default dependencies for CSS preprocessors (Sass, Less, Stylus) and their respective loaders, allowing users to choose their preferred preprocessor. Additionally, the generator provides compatibility layers for router and Vuex plugins, ensuring that these features are correctly initialized for Vue 3 projects.

packages/@vue/cli-service/generator · high confidence

Removals

Removal of legacy Babel and Mocha unit test generators

The legacy generator scripts for configuring Babel and setting up Mocha-based unit tests have been removed from the CLI. This eliminates the automatic injection of the \@vue/cli-plugin-babel\ and \vue-test-utils\ dependencies, as well as the associated template files, for new projects.

packages/@vue/cli/lib/generators · high confidence

Removal of mocha-webpack unit test plugin

The mocha-webpack plugin for running unit tests has been removed from the Vue CLI ecosystem. This eliminates the ability to execute unit tests using the mocha-webpack integration, requiring users to adopt alternative testing strategies or plugins.

packages/@vue/cli-plugin-unit-mocha-webpack · high confidence

Architecture

Refactor CLI service into modular Service and PluginAPI components

The internal architecture of @vue/cli-service has been refactored to separate concerns, introducing a new PluginAPI class that handles plugin registration and configuration merging, while the Service class manages environment loading, plugin resolution, and command execution. This change improves code organization and testability without altering the external configuration API.

packages/@vue/cli-service/lib · high confidence

Behavioural changes

Add TypeScript preset for Jest with ts-jest validation

A new Jest preset for TypeScript has been added, which merges the default Jest configuration with TypeScript-specific settings (such as file extensions and transform rules). The preset explicitly validates that the 'ts-jest' module is installed; if it is missing, the configuration will fail with a clear error message rather than failing silently or with a generic module resolution error.

packages/@vue/cli-plugin-unit-jest/presets/typescript · medium confidence

Automatic ESLint migration and upgrade to v7

The Vue CLI ESLint plugin now includes a migrator that automatically upgrades projects to ESLint v7. For projects scaffolded with Vue CLI 3.0.x or earlier, the tool detects the absence of a local ESLint dependency and injects the necessary packages (including @babel/eslint-parser and eslint-plugin-vue) into the project's devDependencies. It also updates the eslintConfig in package.json to use @babel/eslint-parser as the parser, and configures @typescript-eslint/parser for TypeScript projects. This ensures a smooth transition from older ESLint versions to the latest supported version.

packages/@vue/cli-plugin-eslint/migrator · high confidence

Babel plugin migrator adds core-js v3 upgrade path

The Babel plugin migrator now automatically upgrades the project to use core-js version 3.8.3 and applies a codemod to transform the Babel preset configuration. Users will see a log message warning that custom polyfill names in babel.config.js may have changed due to the core-js upgrade, with a link to the core-js changelog for reference.

packages/@vue/cli-plugin-babel/migrator · high confidence

Dropped IE11 support and updated browser targets

The Vue CLI UI addon widgets now targets modern browsers, explicitly removing IE11 from the default browserlist query and adding 'not ie 11' to the .browserslistrc configuration. This change reflects a shift away from supporting older browsers, aligning with the broader CLI UI update to drop IE11 support.

packages/@vue/cli-ui-addon-widgets · high confidence

ESLint plugin generator now creates .editorconfig files and handles post-create linting

The ESLint plugin generator now automatically generates \.editorconfig\ files for each selected ESLint configuration (e.g., airbnb, standard), ensuring consistent code formatting across the project. Additionally, the generator now runs ESLint to fix code style issues after project scaffolding for older CLI versions, and uses a new \afterAnyInvoke\ hook to ensure linting and fixing occur reliably after the creation process completes.

packages/@vue/cli-plugin-eslint/generator · high confidence

Extracted router plugin into separate package

The Vue CLI router plugin has been extracted into its own package, \@vue/cli-plugin-router\. Users can now install and add the router to an existing project using \vue add router\. The plugin includes a prompt to configure history mode, which utilizes the HTML5 History API to remove the '\#' character from URLs.

packages/@vue/cli-plugin-router · high confidence

Generated Vue projects now support both Vue 2 and Vue 3

The template files for the generated project have been updated to conditionally render code based on the selected Vue version. For Vue 3, the entry point uses the new \createApp\ API, while Vue 2 projects continue to use the traditional \new Vue()\ constructor. Additionally, the root component (\App.vue\) and styles are adapted to handle differences between Vue 2 and 3, including support for various CSS preprocessors like Sass and Stylus.

packages/@vue/cli-service/generator/template/src · high confidence

Generated templates now use multi-word component names for router views

The default Vue CLI templates for router and TypeScript have been updated to use multi-word component names (e.g., \HomeView\, \AboutView\) instead of single-word names. This change affects the generated \HomeView\ and \AboutView\ files in the \src/views\ directory, ensuring that the generated application uses consistent, descriptive naming conventions for its primary view components.

packages/@vue/cli-plugin-router/generator/template/src/views, packages/@vue/cli-plugin-typescript/generator/template/src/views · medium confidence

Improved .vue coverage reporting for Jest unit tests without Babel

The no-babel preset for the Vue CLI Jest plugin has been updated to ensure accurate code coverage reports for .vue files. A new esmoduleTransformer is introduced to handle ES modules, and the jest-preset is configured to use this transformer for both JavaScript and JSX/TSX files, resolving issues where coverage data was missing or incorrect when Babel was not enabled.

packages/@vue/cli-plugin-unit-jest/presets/no-babel · medium confidence

Improved Nightwatch E2E setup with browser version detection and legacy preset compatibility

The Nightwatch plugin generator now detects the user's installed Chrome version to automatically configure the correct chromedriver version, ensuring better compatibility with the user's environment. Additionally, the generator now handles legacy presets that lack a 'webdrivers' field by defaulting to Firefox and Chrome, preventing errors during scaffolding.

packages/@vue/cli-plugin-e2e-nightwatch/generator · high confidence

Improved process termination and command detection utilities

The Vue CLI UI server now uses a new \terminate\ utility that properly kills child processes on all platforms: it uses \taskkill\ on Windows, a recursive shell script on Linux/macOS, and a fallback \kill\ otherwise. Additionally, a new \command.js\ utility detects the preferred package manager (yarn, pnpm, or npm) based on project configuration, and a \parse-args\ utility handles complex argument parsing. These changes improve the reliability of background task management and command execution within the UI.

packages/@vue/cli-ui/apollo-server/util · high confidence

Introduce Dashboard mixin for webpack UI state management

Added a new Vue mixin, Dashboard.js, within the webpack UI addon that manages shared state for the dashboard. This mixin injects task details, tracks the current build mode (e.g., 'build', 'build-modern'), and synchronizes stats and modern build settings with the Vuex store, enabling the UI to react to changes in webpack build modes.

packages/@vue/cli-ui-addon-webpack/src/mixins · medium confidence

Introduce structured validation for plugin API inputs

The plugin API now enforces strict validation on all plugin-provided data, ensuring that configurations, tasks, views, widgets, and other extensions conform to expected schemas. This prevents runtime errors from malformed plugin data and provides clearer error messages when plugins provide invalid options.

packages/@vue/cli-ui/apollo-server/api · high confidence

Introduces new UI styling system for Vue CLI

The Vue CLI UI has been updated with a new, centralized styling system. This includes a new \colors.styl\ file defining light and dark mode color palettes, a \main.styl\ file establishing global layout and component styles (including syntax highlighting for code blocks), and supporting files for variables, mixins, and transitions. This change provides the visual foundation for the redesigned interface, ensuring consistent theming and layout across the application.

packages/@vue/cli-ui/src/style · high confidence

New UI mixins for state, layout, and interaction

The Vue CLI UI has been updated with several new Vue mixins to improve the user interface and developer experience. ClientState now manages GraphQL subscriptions for connection status and dark mode. A new Defer mixin allows components to defer rendering based on display priority, improving perceived performance. Movable and Resizable mixins provide drag-and-drop and resize functionality for UI elements, while OnGrid handles grid-based positioning. Progress and Prompts mixins handle real-time updates for task progress and interactive prompts. Finally, RestoreRoute preserves navigation state across views, and PageVisibility tracks browser focus to manage background tasks.

packages/@vue/cli-ui/src/mixins · high confidence

New interactive prompts for Vue CLI project scaffolding

The Vue CLI now presents a comprehensive set of interactive prompts during project creation, allowing users to explicitly choose the Vue version (3.x or 2.x) and select optional features such as TypeScript, Router, Vuex, PWA, CSS preprocessors, linters, and testing frameworks. This change introduces new prompt modules for each feature, enabling users to configure specific options like CSS preprocessor choice (Sass, Less, Stylus), linter configuration (ESLint, Prettier), and unit/E2E testing solutions (Jest, Mocha, Cypress, Nightwatch, WebdriverIO) directly through the CLI interface.

packages/@vue/cli/lib/promptModules · high confidence

New project management interface with rename, selection, and task controls

The project manager component has been redesigned with new Vue components that allow users to select, import, and create projects, as well as rename projects and manage task states. The ProjectRename component provides a modal for renaming projects, while ProjectSelect offers tabs for existing, creating, and importing projects. ProjectSelectList displays a searchable, filterable list of projects with options to favorite, remove, or open them. ProjectSelectListItem adds an 'Open in Editor' button and a tasks dropdown for running or stopping tasks, improving discoverability and control over project operations.

packages/@vue/cli-ui/src/components/project-manager · medium confidence

Node version check and CLI argument parsing moved to entry point

The entry point for the Vue CLI service now enforces a required Node.js version before loading the main service logic, and explicitly defines boolean flags for commands like modern, report, and inline-vue. This ensures users are on a supported Node version and that specific CLI options are correctly interpreted as boolean values.

packages/@vue/cli-service/bin · high confidence

Redesigned plugin management interface with local plugin support

The Vue CLI UI has been redesigned to provide a more structured workflow for managing project plugins. A new 'ProjectPlugins' view lists installed plugins with details like version, update status, and local path, allowing users to update or refresh them. The 'ProjectPluginsAdd' flow now supports installing plugins from npm or adding local plugins via a new 'ProjectPluginAddLocal' component, which uses a folder explorer for selection. This change introduces new components (ProjectPluginItem, ProjectPlugins, ProjectPluginsAdd, ProjectPluginAddLocal) that collectively enable searching, installing, configuring, and managing both remote and local plugins.

packages/@vue/cli-ui/src/components/plugin · medium confidence

Refactor CLI entry point to use a single executable script

The Vue CLI entry point has been refactored from multiple separate bin scripts (vue, vue-create, vue-init) into a single vue.js script. This consolidates command registration and argument parsing, ensuring that unknown commands return an exit code of 1 and providing a unified interface for all CLI commands.

packages/@vue/cli/bin · high confidence

Refactor CLI service utilities and enforce configuration constraints

The @vue/cli-service package refactors its internal utility modules, introducing new helpers for loading file-based configurations (supporting .js, .cjs, and .mjs files), resolving client environment variables, and preparing proxy and URL configurations. Additionally, the service now validates the webpack configuration to prevent direct modifications to output.path and output.publicPath, ensuring users use the official 'outputDir' and 'publicPath' options instead.

packages/@vue/cli-service/lib/util · high confidence

Refactor shared utilities into modular, testable files

The shared utilities in \@vue/cli-shared-utils/lib\ have been refactored from a single file into separate modules (e.g., \env.js\, \logger.js\, \ipc.js\, \module.js\, \pluginOrder.js\, \pluginResolution.js\, \request.js\, \validate.js\). This change improves code organization and testability, allowing each utility to be imported and tested independently. For example, \env.js\ now handles environment detection (Yarn, Git, pnpm) with caching, while \logger.js\ provides structured logging with event emission. The \ipc.js\ module now uses \@achrinza/node-ipc\ for inter-process communication, and \pluginOrder.js\ implements topological sorting for plugin execution order.

packages/@vue/cli-shared-utils/lib · high confidence

Refactored Babel transpilation and caching logic

The Babel plugin's webpack configuration was refactored to use a more explicit \exclude\ function for the \js\ rule, replacing the previous \include\ logic. This change introduces support for the \transpileDependencies\ option, allowing users to specify packages or regexes to be transpiled from \node\_modules\, with a default of \false\. The configuration now explicitly handles transpiling \@babel/runtime\ via an environment variable, excludes a list of non-transpilable dependencies, and enables \thread-loader\ for parallelization. Additionally, the Babel cache configuration was updated to include the \@vue/babel-preset-app\ version and \modern\ build status, and \cacheCompression\ is disabled by default.

packages/@vue/cli-plugin-babel · high confidence

Refactored CLI utility modules and improved file handling

The CLI's internal utility modules have been reorganized and expanded to improve maintainability and functionality. A new \ProjectPackageManager\ class centralizes package manager detection and execution, while \configTransforms\ now handles JS, JSON, YAML, and line-based config merging with better deduplication. File writing is now handled by a new \writeFileTree\ utility that supports deleting removed files and respects a skip flag, and \readFiles\ now correctly filters out \.svn\ directories. Additionally, \generateReadme\ now includes script descriptions, \getGlobalInstallCommand\ detects the correct global install command for npm/yarn/pnpm, and \rcPath\ migrates Windows config files to the home directory for consistency.

packages/@vue/cli/lib/util · high confidence

Refactored Vue CLI UI connector architecture

The \@vue/cli-ui/apollo-server/connectors\ module has been restructured into a modular, single-responsibility architecture. The previous monolithic connector files have been split into distinct modules for managing application state, client add-ons, configuration files, current working directory, dependencies, file operations, folder navigation, Git integration, localization, logging, plugin management, progress tracking, project lifecycle, prompt handling, shared data, suggestions, task execution, and view management. This refactoring improves code organization and maintainability within the Vue CLI UI's Apollo server backend.

packages/@vue/cli-ui/apollo-server/connectors · high confidence

Refine @vue/cli package publishing and documentation

The @vue/cli package now includes a .npmignore file that excludes \_\tests\\, \\mocks\\_, and .version from the published package, preventing unnecessary files from being distributed. A README.md file has been added to provide installation and usage instructions, and the previous test.js file has been removed.

packages/@vue/cli · high confidence

Remove deprecated vue-next plugin support

The Vue CLI service now includes a migrator that automatically removes the 'vue-next' plugin and its associated dependencies, as Vue 3 support has been integrated into the core plugins. The migrator also includes a placeholder for a future lint-staged update.

packages/@vue/cli-service/migrator · medium confidence

Restructure Apollo Server into modular components

The Apollo server implementation has been refactored into separate, modular files for channels, context, directives, mocks, pubsub, resolvers, server setup, and type definitions. This change introduces a new channels file to define event names, a dedicated pubsub module that sets the maximum listeners to Infinity, and a server module that enforces no-cache headers on static files and plugin assets.

packages/@vue/cli-ui/apollo-server · high confidence

Restructured @vue/cli-overlay package with new metadata and source files

The @vue/cli-overlay package was restructured: a .npmignore file was added to exclude \_\tests\\_ and \_\mocks\\_ directories from the published package, a README.md was added to describe the overlay, and the source code was moved from packages/@vue/cli-plugin-unit-mocha-webpack/runner.js to packages/@vue/cli-overlay/src/index.js.

packages/@vue/cli-overlay · medium confidence

Restructured webpack configuration into modular, target-specific config files

The monolithic webpack configuration in \packages/@vue/cli-service/lib/config\ has been refactored into distinct, modular files (\app.js\, \assets.js\, \base.js\, \css.js\, \prod.js\, \terserOptions.js\) that are applied conditionally based on the build target (e.g., \app\, \lib\, \wc\). This change introduces a new \base.js\ that handles Vue 2 and Vue 3 specific loader setups, while \app.js\ manages entry points, HTML templates, and chunk splitting for the default app target. The \css.js\ module now explicitly checks for PostCSS configuration and enforces PostCSS 8, while \assets.js\ configures Webpack 5 asset modules for images, media, and fonts. Additionally, \terserOptions.js\ provides a unified interface for configuring JavaScript minification via Terser, ESBuild, SWC, or UglifyJS.

packages/@vue/cli-service/lib/config · high confidence

Router configuration extracted to a dedicated module

The router setup code has been moved into a dedicated \src/router/index.js\ file, separating the Vue Router configuration from the main application entry point. This change introduces TypeScript support for route definitions using the \RouteConfig\ type and implements lazy loading for the 'about' view using dynamic imports, which generates a separate chunk for code-splitting.

packages/@vue/cli-plugin-router/generator/template/src/router · high confidence

Router plugin now supports Vue 3 with separate generation logic

The router plugin generator has been updated to support both Vue 2 and Vue 3. For Vue 3 projects, the generator now installs vue-router version 4.0.3 and uses the \createApp().use()\ pattern to register the router, whereas Vue 2 projects continue to use vue-router 3.5.1 with the legacy root option injection. This change allows the CLI to correctly scaffold router configurations for modern Vue 3 applications.

packages/@vue/cli-plugin-router/generator · high confidence

TypeScript component template now supports class-style components

The default HelloWorld component template in the Vue CLI TypeScript plugin has been updated to support class-style components via vue-property-decorator. When the 'classComponent' option is enabled, the generated component uses the @Component decorator and class syntax; otherwise, it uses the standard Vue.extend API. This allows users to choose between functional and class-based component styles in their generated projects.

packages/@vue/cli-plugin-typescript/generator/template/src/components · medium confidence

TypeScript plugin now supports template inheritance and TSX shims

The Vue CLI TypeScript plugin now supports template inheritance, allowing the generated App.vue to extend a base template and conditionally replace content based on whether the router plugin is present. Additionally, the template now includes separate TypeScript declaration files (shims) for TSX and Vue SFCs, enabling proper type checking for JSX and .vue files in TypeScript projects.

packages/@vue/cli-plugin-typescript/generator/template/src · medium confidence

Update @vue/test-utils version for Vue 3 support

The unit test plugin now installs @vue/test-utils version 2.0.0 for Vue 3 projects, while continuing to use version 1.1.3 for Vue 2 projects. This ensures compatibility with the respective Vue versions and includes necessary type definitions for TypeScript projects.

packages/@vue/cli-plugin-unit-mocha/generator · high confidence

Update Jest migration to support Vue 3 and TypeScript

The Jest plugin migrator now automatically adds Jest v27 as a peer dependency. For Vue 3 projects, it adds @vue/vue3-jest; for Vue 2, it adds @vue/vue2-jest. It also adds ts-jest for projects using the TypeScript plugin.

packages/@vue/cli-plugin-unit-jest/migrator · high confidence

Update Vue 3 router template to use createWebHistory/createWebHashHistory

The Vue 3 project template for the router plugin has been updated to use the modern \createWebHistory\ and \createWebHashHistory\ APIs from \vue-router\ instead of the previous instantiation method. This change ensures that new Vue 3 projects generated with the CLI use the correct router configuration for history or hash modes, aligning the template with current \vue-router\ best practices.

packages/@vue/cli-plugin-router/generator/template-vue3 · high confidence

Updated Jest preset configuration for Vue.js unit testing

The default Jest preset for Vue.js unit testing has been updated to include support for AVIF image files and uses jsdom v15. The configuration now dynamically detects the installed Vue version to load the correct @vue/vue{version}-jest package, and includes specific transform rules for various media and font file types.

packages/@vue/cli-plugin-unit-jest/presets/default · medium confidence

Updated WebDriverIO migration script for v7 and added expect-webdriverio support

The migration script for the E2E WebdriverIO plugin has been updated to handle upgrades from older Vue CLI versions. For projects upgrading from version 5.0.0-alpha.4 or earlier, the migrator now updates the \tsconfig.json\ to replace the deprecated \@wdio/sync\ import with \webdriverio/sync\ and adds \expect-webdriverio\ to the TypeScript configuration. Additionally, for projects upgrading from version 5.0.0-beta.4 or earlier, the migrator updates the \@wdio/sync\ dependency to version 7.0.7.

packages/@vue/cli-plugin-e2e-webdriverio/migrator · medium confidence

The default App.vue template in the Vue CLI router plugin generator has been updated to include a navigation bar with links to the Home and About pages, along with styling for the navigation links and active states. This change modifies the generated project's root component to provide a basic navigation structure out of the box.

packages/@vue/cli-plugin-router/generator/template/src · medium confidence

Updated default component template with CSS preprocessor support

The default HelloWorld component template has been updated to support different CSS preprocessors. The template now conditionally generates SCSS or Stylus styles based on the project's configuration, allowing new projects to be bootstrapped with the appropriate CSS preprocessor setup.

packages/@vue/cli-service/generator/template/src/components · medium confidence

Vue 3 and Vue 2 support for Vuex plugin

The Vuex plugin generator now detects the Vue version to provide version-specific setup: for Vue 3, it installs Vuex 4.0.0 and uses the \use(store)\ pattern via \injectUseStore.js\; for Vue 2, it installs Vuex 3.6.2 and uses the traditional \Vue.use(Vuex)\ approach. This enables developers to scaffold a Vuex store template appropriate for their Vue version.

packages/@vue/cli-plugin-vuex/generator · high confidence

Vue CLI ESLint plugin refactored with modern ESLint API and new configuration files

The \@vue/cli-plugin-eslint\ package has been restructured into new files (\eslintDeps.js\, \eslintOptions.js\, \index.js\, \lint.js\, \prompts.js\) to implement the change. The plugin now uses the modern \ESLint\ class instead of the deprecated \CLIEngine\. It also introduces a new \--output-file\ CLI option to write lint reports to a file, and updates the default ESLint dependencies to ESLint 7/8 and related plugins. The plugin's configuration is now generated via \eslintOptions.js\, which handles presets (Airbnb, Standard, Prettier, TypeScript) and Vue 3 compatibility. Additionally, the plugin now properly resolves ESLint from the project's \node\_modules\ or falls back to a bundled version, and includes a \.npmignore\ file to exclude test/mocks from the published package.

packages/@vue/cli-plugin-eslint · high confidence

Vuex support is now a separate CLI plugin

The Vuex integration has been extracted from the core Vue CLI package into its own standalone plugin (@vue/cli-plugin-vuex). Users can now add Vuex to an existing project by running \vue add vuex\. This change allows the Vuex plugin to be installed and managed independently of the main CLI.

packages/@vue/cli-plugin-vuex · high confidence

Fixes

Update Vue 3 TypeScript shim migration to use DefineComponent

The codemod for migrating the \shims-vue\ TypeScript declaration file has been updated to reflect Vue 3's type system. Specifically, the migration script now transforms the component type from \ReturnType\<typeof defineComponent\>\ to \DefineComponent\, and updates the corresponding test fixtures to match this new structure.

packages/@vue/cli-plugin-typescript/codemods · high confidence

Updated Vue 3 + TypeScript template with proper type shims and component scaffolding

The Vue 3 + TypeScript template now includes a \shims-vue.d.ts\ file that correctly types \.vue\ imports using \DefineComponent\, and provides \App.vue\, \HelloWorld.vue\, and \HomeView.vue\ with both composition API and class-component (vue-class-component) script blocks, ensuring TypeScript compilation and IDE support for Vue 3 projects.

packages/@vue/cli-plugin-typescript/generator/template-vue3 · high confidence

Test coverage

Add Cypress e2e test configuration template; Added Cypress e2e plugin configuration; Added Cypress e2e support files; Added Cypress support files for end-to-end testing; Added E2E test template for WebdriverIO integration; Added E2E test templates for Vue CLI Nightwatch plugin; Added ESLint configuration for Cypress e2e tests; Added comprehensive test coverage for Vue CLI core modules; Added comprehensive test coverage for the ESLint plugin; Added default Cypress e2e test template; Added e2e-cypress plugin tests; Added empty placeholder for test package; Added end-to-end and generator tests for the PWA plugin; Added end-to-end tests for Vue UI project management, plugins, configurations, and tasks; Added integration tests for the Nightwatch e2e plugin; Added test helper files for Nightwatch e2e tests; Added tests for Babel plugin migration, runtime behavior, and dependency transpilation; Added tests for Vue CLI config merging logic; Added tests for Vue CLI router plugin generator; Added tests for plugin resolution and ordering utilities; Added tests for the Mocha unit testing plugin; Added tests for the TypeScript plugin generator and runtime behavior; Added tests for the new e2e-webdriverio plugin; Added unit tests for CLI prompt modules; Added unit tests for the Jest plugin generator and plugin execution; Fix unit test templates for bare projects with router; Mocking for inquirer and fs added to \_\mocks\\_.

Dependencies

Vue CLI v5.0.9 release with updated dependencies

This release updates the Vue CLI suite to version 5.0.9, aligning all internal packages and plugins with this version number. Key dependency updates include bumping the default TypeScript version to 4.5.5, upgrading Jest to 27.1.0, and updating the Babel preset to 7.12.16. The CLI UI and shared utilities have also been updated to version 5.0.9, ensuring consistent behavior across the development environment.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 33 → 43 (+9.7)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 50 → 53 (+3.5)
  • Architecture 73 (new)
  • Maturity 47 → 55 (+8.6)
  • Readiness 16 → 35 (+19.2)
  • Security 64 → 62 (-2.2)
  • Accessibility 42 (new)

Resolved (94)

  • (anonymous) (cognitive 16) (packages/@vue/cli/lib/util/executeCommand.js)
  • Change coupling: App.vue ↔ main.js (packages/@vue/cli-service/generator/template/src/App.vue)
  • Change coupling: Creator.js ↔ clearConsole.js (packages/@vue/cli/lib/Creator.js)
  • Change coupling: add.js ↔ invoke.js (packages/@vue/cli/lib/add.js)
  • Change coupling: base.js ↔ resolveClientEnv.js (packages/@vue/cli-service/lib/config/base.js)
  • Change coupling: create.js ↔ writeFileTree.js (packages/@vue/cli/lib/create.js)
  • Change coupling: index.js ↔ index.js (packages/@vue/cli-plugin-unit-jest/generator/index.js)
  • Change coupling: index.js ↔ index.js (packages/@vue/cli-plugin-vuex/generator/index.js)
  • Change coupling: index.js ↔ main.js (packages/@vue/cli-service/generator/index.js)
  • Change coupling: index.js ↔ polyfillsPlugin.js (packages/@vue/babel-preset-app/index.js)
  • Change coupling: main.js ↔ GeneratorAPI.js (packages/@vue/cli-service/generator/template/src/main.js)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • …and 74 more

New (438)

  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Documentation: contradicts the code (docs/index.md)
  • Documentation: no installation or build instructions (docs/index.md)
  • …and 418 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

vuejs/vue-cli was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 25 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 7eb93c169c7520935252e2473387f923ef80d856 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-dd72cc24c749.