UNPKG

browser-plugin-creator

Version:

A modern scaffolding tool for creating browser extensions with ease

50 lines (49 loc) 1.78 kB
#!/usr/bin/env node import { Command } from 'commander'; import chalk from 'chalk'; import { createProject } from './commands/create.js'; import { listTemplates } from './commands/list.js'; import { createRequire } from 'module'; const require = createRequire(import.meta.url); const { version } = require('../../package.json'); const program = new Command(); program .name('browser-plugin-creator') .description('A modern scaffolding tool for creating browser extensions') .version(version); program .command('create') .description('Create a new browser extension project') .argument('<project-name>', 'name of the project') .option('-t, --template <template>', 'template to use', 'basic-popup') .option('-f, --force', 'overwrite existing directory') .option('--typescript', 'use TypeScript') .option('--no-git', 'skip git initialization') .action(createProject); program .command('list') .alias('ls') .description('List all available templates') .action(listTemplates); program .command('config') .description('Manage configuration') .option('--get <key>', 'get configuration value') .option('--set <key> <value>', 'set configuration value') .option('--list', 'list all configuration'); // 错误处理 program.configureOutput({ writeErr: (str) => process.stdout.write(chalk.red(str)), outputError: (str, write) => write(chalk.red(str)) }); // 未识别命令处理 program.on('command:*', ([cmd]) => { console.log(chalk.red(`Unknown command: ${cmd}`)); console.log('Run "browser-plugin-creator --help" for available commands.'); process.exit(1); }); // 如果没有提供命令,显示帮助 if (!process.argv.slice(2).length) { program.outputHelp(); } program.parse();