CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-vue--cli

Command line interface for rapid Vue.js development

Pending
Overview
Eval results
Files

graphical-interface.mddocs/

Graphical Interface

Web-based project management interface providing visual tools for Vue CLI project creation, plugin management, and development workflow.

Capabilities

UI Command

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 port

Usage 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 --dev

UI Function (Programmatic)

Programmatic 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();

UI Features

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;
}

UI Server Architecture

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;
}

API Endpoints

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;
  };
}

WebSocket Events

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;
  };
}

UI Component System

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;
  };
}

Configuration Options

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;
  };
}

Browser Integration

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

docs

configuration-management.md

development-tools.md

graphical-interface.md

index.md

plugin-management.md

programmatic-api.md

project-creation.md

project-maintenance.md

tile.json