Shared CLI utilities and tools for the uni-app cross-platform development framework
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
Integration with modern build tools including Vite plugins, ESBuild configurations, PostCSS processing, and optimization utilities for uni-app development across multiple platforms.
Comprehensive worker management and compilation for uni-app projects.
/**
* Returns current worker file mappings
* @returns Record mapping worker names to their file paths
*/
function getWorkers(): Record<string, string>;
/**
* Resolves the workers root directory from project configuration
* @returns Absolute path to workers directory
*/
function resolveWorkersRootDir(): string;
/**
* Initializes worker mappings from specified directories
* @param workersDirs - Array of worker directory paths to scan
* @param rootDir - Project root directory path
* @returns Record mapping worker names to their resolved paths
*/
function initWorkers(workersDirs: string[], rootDir: string): Record<string, string>;
/**
* Vite plugin for uni-app worker support and compilation
* @returns Vite plugin configuration for worker processing
*/
function uniWorkersPlugin(): Plugin;
/**
* JavaScript-specific worker support plugin for enhanced JS worker handling
* @returns Vite plugin for JavaScript worker compilation
*/
function uniJavaScriptWorkersPlugin(): Plugin;
/**
* Resolves worker directories from manifest configuration
* @param inputDir - Input directory to scan for worker configurations
* @returns Array of resolved worker directory paths
*/
function resolveWorkersDir(inputDir: string): string[];Usage Example:
import {
getWorkers,
initWorkers,
uniWorkersPlugin,
resolveWorkersRootDir
} from "@dcloudio/uni-cli-shared";
// Initialize workers from project directories
const workerDirs = ['./src/workers', './uni_modules/*/workers'];
const rootDir = process.cwd();
const workerMappings = initWorkers(workerDirs, rootDir);
console.log('Available workers:', workerMappings);
// { 'data-processor': '/path/to/src/workers/data-processor.js' }
// Get current worker configuration
const currentWorkers = getWorkers();
// Vite configuration with worker support
export default {
plugins: [
uniWorkersPlugin(),
uniJavaScriptWorkersPlugin()
],
worker: {
format: 'es',
plugins: []
}
};Development environment integration with HBuilderX IDE.
/**
* Creates a Vite plugin for HBuilderX console integration and logging
* @param method - Console method name for logging (defaults to '__f__')
* @returns Vite plugin for enhanced HBuilderX development experience
*/
function uniHBuilderXConsolePlugin(method?: string): Plugin;
/**
* Checks if console logging is enabled in development environment
* @returns True if console logging should be active
*/
function isEnableConsole(): boolean;Usage Example:
import {
uniHBuilderXConsolePlugin,
isEnableConsole
} from "@dcloudio/uni-cli-shared";
// Vite configuration for HBuilderX development
export default {
plugins: [
// Enable HBuilderX console integration
uniHBuilderXConsolePlugin('__hbx_log__'),
// Conditional logging based on environment
isEnableConsole() && {
name: 'dev-logger',
configureServer(server) {
server.middlewares.use('/api/log', loggerMiddleware);
}
}
].filter(Boolean)
};
// Check console status in development workflow
if (isEnableConsole()) {
console.log('Development logging enabled');
} else {
console.log('Production mode - logging disabled');
}Enhanced Vite plugin ecosystem for uni-app development.
// Vite-specific utilities and plugins (from ./vite module)
// Complete Vite integration API available through main exportESBuild integration for fast JavaScript/TypeScript compilation.
// ESBuild utilities and configurations (from ./esbuild module)
// Complete ESBuild API available through main exportAdvanced CSS processing and optimization utilities.
// PostCSS plugins and utilities (from ./postcss module)
// Complete PostCSS API available through main exportimport {
uniWorkersPlugin,
uniHBuilderXConsolePlugin,
isEnableConsole
} from "@dcloudio/uni-cli-shared";
// Complete development server configuration
export default defineConfig({
plugins: [
vue(),
// Worker support for background processing
uniWorkersPlugin(),
uniJavaScriptWorkersPlugin(),
// HBuilderX IDE integration
uniHBuilderXConsolePlugin(),
// Conditional development plugins
...(isEnableConsole() ? [
{
name: 'dev-tools',
configureServer(server) {
// Enhanced development middleware
}
}
] : [])
],
server: {
port: 3000,
host: true
},
worker: {
format: 'es'
}
});import {
getWorkers,
resolveWorkersRootDir
} from "@dcloudio/uni-cli-shared";
export default defineConfig({
build: {
rollupOptions: {
input: {
main: './src/main.ts',
...getWorkers() // Include all workers in build
},
output: {
chunkFileNames: 'js/[name].[hash].js',
entryFileNames: 'js/[name].[hash].js',
// Separate worker outputs
manualChunks(id) {
const workersRoot = resolveWorkersRootDir();
if (id.includes(workersRoot)) {
return 'workers';
}
}
}
},
// Production optimizations
minify: 'esbuild',
target: ['es2015', 'chrome63'],
cssCodeSplit: true
}
});import {
initWorkers,
uniWorkersPlugin
} from "@dcloudio/uni-cli-shared";
// Configure builds for different uni-app platforms
const platformConfigs = {
'h5': {
plugins: [
uniWorkersPlugin(),
// H5-specific plugins
]
},
'app-plus': {
plugins: [
uniWorkersPlugin(),
// Native app plugins
]
},
'mp-weixin': {
plugins: [
// Mini-program specific worker handling
uniWorkersPlugin()
]
}
};
export default ({ command, mode }) => {
const platform = process.env.UNI_PLATFORM || 'h5';
const config = platformConfigs[platform];
// Initialize platform-specific workers
if (platform === 'app-plus') {
const workers = initWorkers(['./src/native-workers'], process.cwd());
console.log('Native workers:', workers);
}
return defineConfig(config);
};import {
initWorkers,
getWorkers,
resolveWorkersDir
} from "@dcloudio/uni-cli-shared";
// Advanced worker management
class UniWorkerManager {
private workers: Record<string, string> = {};
async initialize(projectRoot: string) {
// Discover worker directories from manifest
const workerDirs = resolveWorkersDir(projectRoot);
// Initialize worker mappings
this.workers = initWorkers(workerDirs, projectRoot);
console.log('Initialized workers:', Object.keys(this.workers));
}
getWorkerPath(name: string): string | undefined {
return this.workers[name];
}
getAllWorkers(): Record<string, string> {
return { ...this.workers };
}
// Dynamic worker loading
async loadWorker(name: string): Promise<Worker | null> {
const workerPath = this.getWorkerPath(name);
if (!workerPath) return null;
return new Worker(workerPath, {
type: 'module'
});
}
}
// Usage in application
const workerManager = new UniWorkerManager();
await workerManager.initialize('./');
// Load specific worker
const dataWorker = await workerManager.loadWorker('data-processor');
if (dataWorker) {
dataWorker.postMessage({ action: 'process', data: [...] });
}import {
uniHBuilderXConsolePlugin,
isEnableConsole
} from "@dcloudio/uni-cli-shared";
// Enhanced console integration for development
const createConsolePlugin = () => {
if (!isEnableConsole()) return null;
return {
name: 'uni-console-enhanced',
configureServer(server) {
// WebSocket connection for real-time logging
server.ws.on('uni:console', (data) => {
console.log('[UNI]', data);
});
},
transform(code, id) {
if (id.includes('.vue')) {
// Inject console helpers in Vue components
return {
code: `
${code}
if (process.env.NODE_ENV === 'development') {
// Enhanced logging for Vue components
}
`,
map: null
};
}
}
};
};
// Use in Vite config
export default {
plugins: [
uniHBuilderXConsolePlugin('__hbx__'),
createConsolePlugin()
].filter(Boolean)
};import { uniJavaScriptWorkersPlugin } from "@dcloudio/uni-cli-shared";
// Optimize worker performance with code splitting
export default {
plugins: [
uniJavaScriptWorkersPlugin()
],
worker: {
rollupOptions: {
output: {
format: 'es',
// Optimize worker bundle size
manualChunks: {
'worker-utils': ['./src/workers/utils'],
'worker-vendor': ['lodash', 'axios']
}
}
}
}
};import {
getWorkers,
isEnableConsole
} from "@dcloudio/uni-cli-shared";
export default defineConfig({
build: {
// Production optimizations
rollupOptions: {
output: {
// Separate worker code from main bundle
manualChunks: {
workers: Object.values(getWorkers())
}
}
},
// Conditional development features
define: {
'__DEV__': JSON.stringify(isEnableConsole()),
'__WORKERS_ENABLED__': JSON.stringify(
Object.keys(getWorkers()).length > 0
)
}
}
});Build tools integration provides comprehensive support for modern development workflows while maintaining compatibility across uni-app's diverse platform ecosystem.
Install with Tessl CLI
npx tessl i tessl/npm-dcloudio--uni-cli-shared