Command line interface for rapid Vue.js development
—
Web-based project management interface providing visual tools for Vue CLI project creation, plugin management, and development workflow.
Start the Vue CLI graphical user interface web application.
/**
* Start and open the vue-cli ui
* Launches a web-based interface for managing Vue CLI projects
*/
vue ui
Options:
-H, --host <host> Host used for the UI server (default: localhost)
-p, --port <port> Port used for the UI server (by default search for available port)
-D, --dev Run in dev mode
--quiet Don't output starting messages
--headless Don't open browser on start and output portUsage Examples:
# Start UI with default settings (opens browser automatically)
vue ui
# Start UI on specific host and port
vue ui --host 0.0.0.0 --port 8080
# Start UI in headless mode (no browser opening)
vue ui --headless
# Start UI quietly (no startup messages)
vue ui --quiet
# Start UI in development mode
vue ui --devProgrammatic interface for starting the Vue CLI UI server.
/**
* Start Vue CLI UI server programmatically
* @param options - UI server options
*/
async function ui(options?: UIOptions): Promise<UIServer>;
interface UIOptions {
/** Server host address */
host?: string;
/** Server port number */
port?: number;
/** Run in development mode */
dev?: boolean;
/** Suppress startup messages */
quiet?: boolean;
/** Don't open browser automatically */
headless?: boolean;
}
interface UIServer {
/** Server host */
host: string;
/** Server port */
port: number;
/** Server URL */
url: string;
/** Close the server */
close(): Promise<void>;
}Usage Examples:
import { ui } from "@vue/cli";
// Start UI server
const server = await ui({
host: 'localhost',
port: 8080,
headless: true
});
console.log(`Vue CLI UI running at ${server.url}`);
// Close server when done
await server.close();Core features available in the Vue CLI graphical interface.
/**
* Vue CLI UI provides the following features through web interface:
*/
/**
* Project Management
* - Create new Vue projects with interactive wizards
* - Import existing Vue projects
* - Browse and switch between projects
* - Project dashboard with overview and quick actions
*/
interface ProjectManagement {
/** Create new project with guided setup */
createProject: ProjectCreationWizard;
/** Import existing project into UI */
importProject: ProjectImportFlow;
/** Switch between managed projects */
projectSwitcher: ProjectList;
/** Project overview dashboard */
dashboard: ProjectDashboard;
}
/**
* Plugin Management
* - Browse available plugins
* - Install and configure plugins
* - Update existing plugins
* - Plugin configuration UI
*/
interface PluginManagement {
/** Plugin marketplace browser */
pluginBrowser: PluginMarketplace;
/** Install plugins with configuration */
pluginInstaller: PluginInstallationWizard;
/** Update plugins to newer versions */
pluginUpdater: PluginUpdateInterface;
/** Configure plugin settings */
pluginConfigurator: PluginConfigurationPanel;
}
/**
* Configuration Management
* - Visual webpack config editor
* - ESLint configuration interface
* - Environment variable management
* - Build configuration options
*/
interface ConfigurationManagement {
/** Visual webpack configuration */
webpackConfig: WebpackConfigEditor;
/** ESLint rules configuration */
eslintConfig: ESLintConfigInterface;
/** Environment variables editor */
envVars: EnvironmentVariableEditor;
/** Build settings configuration */
buildConfig: BuildConfigurationPanel;
}
/**
* Task Management
* - Run npm/yarn scripts visually
* - Development server controls
* - Build process monitoring
* - Task output streaming
*/
interface TaskManagement {
/** Visual script runner */
taskRunner: TaskExecutionInterface;
/** Development server controls */
devServer: DevelopmentServerPanel;
/** Build process monitoring */
buildMonitor: BuildProcessInterface;
/** Real-time task output */
taskOutput: OutputStreamingPanel;
}Architecture and components of the Vue CLI UI server.
/**
* Vue CLI UI server architecture components:
*/
/**
* Backend API Server
* - Express.js server providing REST and GraphQL APIs
* - Project file system operations
* - Plugin management operations
* - Task execution and monitoring
*/
interface UIBackend {
/** REST API endpoints */
restAPI: RESTEndpoints;
/** GraphQL API for complex queries */
graphqlAPI: GraphQLSchema;
/** WebSocket connection for real-time updates */
websocket: WebSocketServer;
/** File system operations */
fileSystem: FileSystemAPI;
}
/**
* Frontend Web Application
* - Vue.js single-page application
* - Component library for Vue CLI-specific UI
* - Real-time updates via WebSocket
* - Responsive design for various screen sizes
*/
interface UIFrontend {
/** Main Vue.js application */
app: VueApplication;
/** UI component library */
components: UIComponentLibrary;
/** State management */
store: VuexStore;
/** Routing configuration */
router: VueRouter;
}REST API endpoints provided by the UI server.
/**
* REST API endpoints for Vue CLI UI:
*/
interface RESTEndpoints {
/** Project management endpoints */
projects: {
/** GET /api/projects - List all projects */
list: () => Project[];
/** POST /api/projects - Create new project */
create: (data: ProjectCreationData) => Project;
/** GET /api/projects/:id - Get project details */
get: (id: string) => Project;
/** PUT /api/projects/:id - Update project */
update: (id: string, data: ProjectUpdateData) => Project;
/** DELETE /api/projects/:id - Remove project */
delete: (id: string) => void;
};
/** Plugin management endpoints */
plugins: {
/** GET /api/plugins - List available plugins */
list: () => Plugin[];
/** POST /api/plugins - Install plugin */
install: (data: PluginInstallData) => InstallationResult;
/** PUT /api/plugins/:id - Update plugin */
update: (id: string) => UpdateResult;
/** DELETE /api/plugins/:id - Remove plugin */
remove: (id: string) => void;
};
/** Task management endpoints */
tasks: {
/** GET /api/tasks - List available tasks */
list: () => Task[];
/** POST /api/tasks/:id/run - Run task */
run: (id: string, args?: string[]) => TaskExecution;
/** POST /api/tasks/:id/stop - Stop running task */
stop: (id: string) => void;
/** GET /api/tasks/:id/logs - Get task logs */
logs: (id: string) => TaskLog[];
};
/** Configuration endpoints */
config: {
/** GET /api/config/webpack - Get webpack config */
webpack: () => WebpackConfig;
/** PUT /api/config/webpack - Update webpack config */
updateWebpack: (config: WebpackConfig) => void;
/** GET /api/config/eslint - Get ESLint config */
eslint: () => ESLintConfig;
/** PUT /api/config/eslint - Update ESLint config */
updateEslint: (config: ESLintConfig) => void;
};
}Real-time events provided through WebSocket connection.
/**
* WebSocket events for real-time updates:
*/
interface WebSocketEvents {
/** Task execution events */
tasks: {
/** Task started event */
'task:start': TaskStartEvent;
/** Task progress update */
'task:progress': TaskProgressEvent;
/** Task completed event */
'task:complete': TaskCompleteEvent;
/** Task error event */
'task:error': TaskErrorEvent;
/** Task output stream */
'task:output': TaskOutputEvent;
};
/** File system events */
files: {
/** File changed event */
'file:changed': FileChangeEvent;
/** File added event */
'file:added': FileAddEvent;
/** File deleted event */
'file:deleted': FileDeleteEvent;
};
/** Plugin events */
plugins: {
/** Plugin installed event */
'plugin:installed': PluginInstallEvent;
/** Plugin updated event */
'plugin:updated': PluginUpdateEvent;
/** Plugin removed event */
'plugin:removed': PluginRemoveEvent;
};
/** Project events */
projects: {
/** Project opened event */
'project:opened': ProjectOpenEvent;
/** Project config changed */
'project:config-changed': ProjectConfigChangeEvent;
};
}Reusable UI components provided by the Vue CLI UI.
/**
* Vue CLI UI component library:
*/
interface UIComponents {
/** Layout components */
layout: {
/** Main application layout */
AppLayout: VueComponent;
/** Navigation sidebar */
Sidebar: VueComponent;
/** Top navigation bar */
Navbar: VueComponent;
/** Content area wrapper */
ContentArea: VueComponent;
};
/** Form components */
forms: {
/** Plugin configuration form */
PluginConfigForm: VueComponent;
/** Project creation form */
ProjectCreateForm: VueComponent;
/** Configuration editor form */
ConfigEditorForm: VueComponent;
/** Task parameter form */
TaskParamsForm: VueComponent;
};
/** Display components */
display: {
/** Project card display */
ProjectCard: VueComponent;
/** Plugin list item */
PluginListItem: VueComponent;
/** Task execution status */
TaskStatus: VueComponent;
/** Configuration viewer */
ConfigViewer: VueComponent;
};
/** Interactive components */
interactive: {
/** File browser */
FileBrowser: VueComponent;
/** Task runner interface */
TaskRunner: VueComponent;
/** Plugin installer wizard */
PluginWizard: VueComponent;
/** Configuration editor */
ConfigEditor: VueComponent;
};
}UI server configuration and customization options.
/**
* UI server configuration options:
*/
interface UIServerConfig {
/** Server binding configuration */
server: {
/** Host to bind server to */
host: string;
/** Port to bind server to */
port: number;
/** Enable HTTPS */
https: boolean;
/** SSL certificate options */
ssl?: SSLOptions;
};
/** Development mode settings */
development: {
/** Enable development mode */
enabled: boolean;
/** Hot module replacement */
hmr: boolean;
/** Source maps */
sourceMaps: boolean;
/** Debug logging */
debug: boolean;
};
/** Security settings */
security: {
/** CORS configuration */
cors: CORSOptions;
/** Authentication settings */
auth?: AuthOptions;
/** Rate limiting */
rateLimit?: RateLimitOptions;
};
/** UI customization */
ui: {
/** Custom theme */
theme?: ThemeOptions;
/** Plugin availability */
plugins: PluginAvailabilityOptions;
/** Feature flags */
features: FeatureFlagOptions;
};
}Integration with system browsers for launching and managing the UI.
/**
* Browser integration utilities:
*/
/**
* Open URL in default browser
* @param url - URL to open
* @param options - Browser options
*/
function openBrowser(url: string, options?: BrowserOptions): Promise<void>;
interface BrowserOptions {
/** Specific browser to use */
browser?: string;
/** Wait for browser to close */
wait?: boolean;
/** Browser arguments */
args?: string[];
}
/**
* Detect available browsers on system
* @returns List of available browsers
*/
function detectBrowsers(): Browser[];
interface Browser {
/** Browser name */
name: string;
/** Browser executable path */
path: string;
/** Browser version */
version: string;
/** Whether browser is default */
isDefault: boolean;
}Install with Tessl CLI
npx tessl i tessl/npm-vue--cli