or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

build-tools.mdconstants-types.mddevelopment-tools.mdfilesystem.mdindex.mdminiprogram.mdplugin-system.mduts.mdvue-integration.md
tile.json

index.mddocs/

@dcloudio/uni-cli-shared

@dcloudio/uni-cli-shared is a comprehensive shared library for uni-app CLI tools, providing utilities, configuration helpers, and platform-specific functionality across different build targets. It serves as the core foundation for the uni-app cross-platform development framework, supporting web, native apps, and various mini-program platforms.

Package Information

  • Package Name: @dcloudio/uni-cli-shared
  • Package Type: npm
  • Language: TypeScript
  • Installation: npm install @dcloudio/uni-cli-shared
  • Main Entry: dist/index.js
  • Types: dist/index.d.ts
  • Node Version: ^14.18.0 || >=16.0.0

Core Imports

// Main package imports
import { 
  emptyDir, 
  normalizePath, 
  parseProgram, 
  formatMiniProgramEvent,
  uniWorkersPlugin
} from "@dcloudio/uni-cli-shared";

CommonJS:

const { 
  emptyDir, 
  normalizePath, 
  parseProgram, 
  formatMiniProgramEvent,
  uniWorkersPlugin
} = require("@dcloudio/uni-cli-shared");

Basic Usage

import { 
  emptyDir,
  parseProgram, 
  formatMiniProgramEvent,
  normalizePath,
  HTML_TO_MINI_PROGRAM_TAGS 
} from "@dcloudio/uni-cli-shared";

// Clean a directory
emptyDir('./temp', ['keep.txt']);

// Parse JavaScript/TypeScript code
const ast = parseProgram('const x = 42;', './src/app.js', {
  babelParserPlugins: ['typescript']
});

// Format mini-program events
const eventName = formatMiniProgramEvent('click', { 
  isCatch: true, 
  isCapture: false 
});

// Normalize file paths
const normalized = normalizePath('\\path\\with\\backslashes');

// Access HTML to mini-program tag mappings
const miniTag = HTML_TO_MINI_PROGRAM_TAGS['div']; // 'view'

Architecture

@dcloudio/uni-cli-shared is structured around several key architectural components:

  • Platform Abstraction: Provides unified APIs that work across web, app, and mini-program platforms
  • Build Tool Integration: Deep integration with Vite, ESBuild, and PostCSS for optimal build performance
  • Code Transformation: AST-based transformations for Vue.js components, UTS code, and platform-specific adaptations
  • Template Processing: Mini-program template compilation and optimization
  • Plugin System: Extensible plugin architecture for uni_modules and custom functionality
  • Development Tools: Enhanced logging, HBuilderX IDE integration, and developer experience utilities

Capabilities

Mini-Program Support

Comprehensive utilities for mini-program development including template processing, event handling, style transformations, and platform-specific optimizations.

function parseProgram(
  code: string, 
  importer: string, 
  options: { babelParserPlugins?: ParserPlugin[] }
): Program;

function formatMiniProgramEvent(
  eventName: string, 
  options: EventOptions
): string;

interface EventOptions {
  isCatch?: boolean;
  isCapture?: boolean;
  isComponent?: boolean;
}

Mini-Program Support

File System & Utilities

Core file system operations, path utilities, and cross-platform compatibility helpers for uni-app project management.

function emptyDir(dir: string, skip?: string[]): void;
function normalizePath(id: string): string;
function encodeBase64Url(str: string): string;
function decodeBase64Url(str: string): string;

File System & Utilities

Vue.js Integration

Vue.js specific transformations, component processing, template compilation, and SSR support for uni-app development.

// Vue transformation utilities
function transformUniH5Jsx(): any;
function isExternalUrl(url: string): boolean;

// SSR configuration
const stripOptions: {
  include: string[];
  functions: string[];
};

Vue.js Integration

UTS Language Support

UniScript (UTS) language compilation, module resolution, and platform-specific transformations for native functionality.

function resolveUTSAppModule(
  platform: any,
  id: string, 
  importer: string, 
  includeUTSSDK?: boolean
): any;

UTS Language Support

Build Tools & Configuration

Integration with modern build tools including Vite plugins, ESBuild configurations, PostCSS processing, and optimization utilities.

// Worker support plugins
function uniWorkersPlugin(): Plugin;
function uniJavaScriptWorkersPlugin(): Plugin;

// HBuilderX integration
function uniHBuilderXConsolePlugin(method?: string): Plugin;
function isEnableConsole(): boolean;

Build Tools & Configuration

Development Tools

Enhanced development experience with logging utilities, output formatting, worker management, and platform detection.

function output(type: LogType, msg: string): void;
function resetOutput(type: LogType): void;

type LogType = 'error' | 'warn' | 'info' | 'log';

function getWorkers(): Record<string, string>;
function initWorkers(workersDirs: string[], rootDir: string): Record<string, string>;

Development Tools

Plugin System

Extensible plugin architecture supporting uni_modules, cloud integration, and custom functionality for the uni-app ecosystem.

function parseUniExtApi(): any;
function parseUniExtApis(): any;
function parseInjects(): any;
function getUniExtApiProviderRegisters(): any;
function formatExtApiProviderName(): any;

function getUniModulesEncryptType(): any;
function parseUniModulesArtifacts(): any;
function resolveEncryptUniModule(): any;

Plugin System

Constants & Types

Core constants, regular expressions, file extensions, and TypeScript interfaces used throughout the uni-app ecosystem.

// File extensions
const EXTNAME_JS: string[];
const EXTNAME_TS: string[];
const EXTNAME_VUE: string[];
const EXTNAME_VUE_TEMPLATE: string[];

// Regular expressions
const EXTNAME_VUE_RE: RegExp;
const EXTNAME_JS_RE: RegExp;
const EXTNAME_TS_RE: RegExp;

// Build constants
const PUBLIC_DIR: string;
const ASSETS_INLINE_LIMIT: number;
const APP_SERVICE_FILENAME: string;

Constants & Types

Platform Support

@dcloudio/uni-cli-shared supports the complete range of uni-app target platforms:

  • Web Platforms: H5, web browsers with responsive design
  • Native App Platforms: app-plus, app-android, app-ios, app-harmony
  • Mini-Program Platforms: mp-weixin, mp-qq, mp-alipay, mp-baidu, mp-toutiao, and more
  • UniApp X Platforms: uvue components and app-x runtime

Messages and Internationalization

// Localized messages
const M: Record<string, string>;

The package includes comprehensive internationalization support with locale-specific messages for development tools and error reporting.

Third-Party Integrations

The package provides curated re-exports of essential third-party libraries:

// File watching
import chokidar from "chokidar";

// Utility functions
function hash(input: any): string;
function camelize(str: string): string;
function capitalize(str: string): string;
function isArray(value: any): value is any[];