CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-dcloudio--uni-cli-shared

Shared CLI utilities and tools for the uni-app cross-platform development framework

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

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[];

Install with Tessl CLI

npx tessl i tessl/npm-dcloudio--uni-cli-shared

docs

build-tools.md

constants-types.md

development-tools.md

filesystem.md

index.md

miniprogram.md

plugin-system.md

uts.md

vue-integration.md

tile.json