@easy-editor/easypack 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","sources":["../src/config/presets/material.ts","../src/config/presets/setter.ts","../src/config/presets/library.ts","../src/config/presets/index.ts","../src/config/defaults.ts","../src/config/index.ts","../src/rollup/constants.ts","../src/rollup/plugins.ts","../src/rollup/outputs.ts","../src/rollup/index.ts","../src/cli/commands/build.ts","../src/vite/plugins/external-deps.ts","../src/vite/plugins/material-dev.ts","../src/vite/index.ts","../src/cli/commands/dev.ts","../src/cli/commands/init.ts","../src/cli/index.ts","../src/bin.ts"],"sourcesContent":["/**\n * Material Preset - 物料组件预设\n * 适用于 EasyMaterials 中的独立物料包\n */\n\nimport type { EasypackConfig } from '../types'\n\nexport const materialPreset: Partial<EasypackConfig> = {\n entry: {\n main: 'src/index.tsx',\n meta: 'src/meta.ts',\n component: 'src/component.tsx',\n },\n output: {\n dir: 'dist',\n umd: true,\n minify: true,\n },\n css: {\n scopedName: '[name]__[local]___[hash:base64:5]',\n mode: 'inject',\n },\n jsxRuntime: 'automatic',\n dev: {\n port: 5001,\n materialApi: true,\n },\n}\n","/**\n * Setter Preset - 设置器预设\n * 适用于 EasySetters 统一设置器包\n */\n\nimport type { EasypackConfig } from '../types'\n\nexport const setterPreset: Partial<EasypackConfig> = {\n entry: {\n main: 'src/index.ts',\n },\n output: {\n dir: 'dist',\n umd: true,\n minify: true,\n },\n css: {\n scopedName: '[name]-[local]-[hash:base64:5]',\n mode: 'extract',\n extractFilename: 'index.css',\n },\n jsxRuntime: 'classic',\n alias: {\n '@': './src',\n },\n dev: {\n port: 5002,\n materialApi: false,\n },\n}\n","/**\n * Library Preset - 通用库预设\n * 适用于普通的 React 组件库\n */\n\nimport type { EasypackConfig } from '../types'\n\nexport const libraryPreset: Partial<EasypackConfig> = {\n entry: {\n main: 'src/index.ts',\n },\n output: {\n dir: 'dist',\n umd: true,\n minify: true,\n },\n css: {\n scopedName: '[name]__[local]___[hash:base64:5]',\n mode: 'inject',\n },\n jsxRuntime: 'automatic',\n dev: {\n port: 5000,\n materialApi: false,\n },\n}\n","/**\n * Presets Export\n * 预设导出\n */\n\nexport { materialPreset } from './material'\nexport { setterPreset } from './setter'\nexport { libraryPreset } from './library'\n\nimport type { Preset, EasypackConfig } from '../types'\nimport { materialPreset } from './material'\nimport { setterPreset } from './setter'\nimport { libraryPreset } from './library'\n\n/**\n * 根据预设名称获取预设配置\n */\nexport function getPreset(preset: Preset): Partial<EasypackConfig> {\n switch (preset) {\n case 'material':\n return materialPreset\n case 'setter':\n return setterPreset\n case 'library':\n return libraryPreset\n default:\n throw new Error(`Unknown preset: ${preset}`)\n }\n}\n","/**\n * Default Configuration\n * 默认配置和配置合并逻辑\n */\n\nimport { getPreset } from './presets'\nimport type { EasypackConfig, ResolvedConfig } from './types'\n\n/**\n * 默认的外部依赖\n */\nexport const DEFAULT_EXTERNALS = ['react', 'react-dom', 'react/jsx-runtime']\n\n/**\n * 默认的全局变量映射\n */\nexport const DEFAULT_GLOBALS: Record<string, string> = {\n react: 'React',\n 'react-dom': 'ReactDOM',\n 'react/jsx-runtime': 'jsxRuntime',\n}\n\n/**\n * 默认入口配置\n */\nexport const DEFAULT_ENTRY = {\n main: 'src/index.ts',\n meta: 'src/meta.ts',\n component: 'src/component.tsx',\n} as const\n\n/**\n * 默认输出配置\n */\nexport const DEFAULT_OUTPUT = {\n dir: 'dist',\n esm: false,\n cjs: false,\n umd: true,\n minify: true,\n sourcemap: false,\n types: false,\n} as const\n\n/**\n * 默认 CSS 配置\n */\nexport const DEFAULT_CSS = {\n scopedName: '[name]__[local]___[hash:base64:5]',\n mode: 'inject' as const,\n extractFilename: 'index.css',\n}\n\n/**\n * 默认开发服务器配置\n */\nexport const DEFAULT_DEV = {\n port: 5001,\n materialApi: true,\n} as const\n\n/**\n * 从包名推导全局变量名\n *\n * @example\n * '@easy-editor/materials-dashboard-bar-chart' → 'EasyEditorMaterialsBarChart'\n * '@easy-editor/setters' → 'EasyEditorSetters'\n */\nexport function deriveGlobalName(pkgName: string): string {\n // 移除 @scope/ 前缀\n const withoutScope = pkgName.replace(/^@[^/]+\\//, '')\n\n // 特殊处理:materials-dashboard-xxx → MaterialsXxx\n if (withoutScope.startsWith('materials-dashboard-')) {\n const componentName = withoutScope.replace('materials-dashboard-', '')\n return `EasyEditorMaterials${toPascalCase(componentName)}`\n }\n\n // 通用处理:转为 PascalCase\n return `EasyEditor${toPascalCase(withoutScope)}`\n}\n\nfunction toPascalCase(str: string): string {\n return str\n .split('-')\n .map(part => part.charAt(0).toUpperCase() + part.slice(1))\n .join('')\n}\n\n/**\n * 深度合并两个对象\n */\nfunction deepMerge<T extends Record<string, unknown>>(target: T, source: Partial<T>): T {\n const result = { ...target }\n\n for (const key of Object.keys(source) as (keyof T)[]) {\n const sourceValue = source[key]\n const targetValue = target[key]\n\n if (\n sourceValue !== undefined &&\n typeof sourceValue === 'object' &&\n sourceValue !== null &&\n !Array.isArray(sourceValue) &&\n typeof targetValue === 'object' &&\n targetValue !== null &&\n !Array.isArray(targetValue)\n ) {\n result[key] = deepMerge(\n targetValue as Record<string, unknown>,\n sourceValue as Record<string, unknown>,\n ) as T[keyof T]\n } else if (sourceValue !== undefined) {\n result[key] = sourceValue as T[keyof T]\n }\n }\n\n return result\n}\n\n/**\n * 解析并合并配置\n */\nexport function resolveConfig(userConfig: EasypackConfig, pkg: { name: string; version: string }): ResolvedConfig {\n // 获取预设配置\n const presetConfig = getPreset(userConfig.preset)\n\n // 合并用户配置和预设配置\n const merged = deepMerge(presetConfig, userConfig)\n\n // 构建完整的解析配置\n const resolved: ResolvedConfig = {\n preset: userConfig.preset,\n globalName: merged.globalName || deriveGlobalName(pkg.name),\n entry: {\n main: merged.entry?.main || DEFAULT_ENTRY.main,\n meta: merged.entry?.meta || DEFAULT_ENTRY.meta,\n component: merged.entry?.component || DEFAULT_ENTRY.component,\n },\n output: {\n dir: merged.output?.dir || DEFAULT_OUTPUT.dir,\n esm: merged.output?.esm ?? DEFAULT_OUTPUT.esm,\n cjs: merged.output?.cjs ?? DEFAULT_OUTPUT.cjs,\n umd: merged.output?.umd ?? DEFAULT_OUTPUT.umd,\n minify: merged.output?.minify ?? DEFAULT_OUTPUT.minify,\n sourcemap: merged.output?.sourcemap ?? DEFAULT_OUTPUT.sourcemap,\n types: merged.output?.types ?? DEFAULT_OUTPUT.types,\n },\n external: {\n externals: merged.external?.externals || DEFAULT_EXTERNALS,\n globals: { ...DEFAULT_GLOBALS, ...merged.external?.globals },\n },\n css: {\n scopedName: merged.css?.scopedName || DEFAULT_CSS.scopedName,\n mode: merged.css?.mode || DEFAULT_CSS.mode,\n extractFilename: merged.css?.extractFilename || DEFAULT_CSS.extractFilename,\n },\n jsxRuntime: merged.jsxRuntime || 'automatic',\n alias: merged.alias || {},\n dev: {\n port: merged.dev?.port || DEFAULT_DEV.port,\n materialApi: merged.dev?.materialApi ?? DEFAULT_DEV.materialApi,\n },\n vitePlugins: merged.vitePlugins || [],\n pkg,\n }\n\n return resolved\n}\n","/**\n * Configuration Loader\n * 配置加载器 - 加载和解析 easypack.config.ts\n */\n\nimport { build } from 'esbuild'\nimport fs from 'node:fs'\nimport path from 'node:path'\nimport { pathToFileURL } from 'node:url'\nimport { resolveConfig } from './defaults'\nimport type { EasypackConfig, ResolvedConfig } from './types'\n\n/**\n * 支持的配置文件名(按优先级)\n */\nconst CONFIG_FILES = ['easypack.config.ts', 'easypack.config.js', 'easypack.config.mjs']\n\n/**\n * 读取 package.json\n */\nfunction readPackageJson(cwd: string): { name: string; version: string } {\n const pkgPath = path.join(cwd, 'package.json')\n if (!fs.existsSync(pkgPath)) {\n throw new Error(`package.json not found in ${cwd}`)\n }\n const content = fs.readFileSync(pkgPath, 'utf-8')\n const pkg = JSON.parse(content)\n return {\n name: pkg.name || 'unknown',\n version: pkg.version || '0.0.0',\n }\n}\n\n/**\n * 加载 TypeScript/JavaScript 配置文件\n */\nasync function loadConfigFile(configPath: string): Promise<EasypackConfig> {\n const ext = path.extname(configPath)\n\n // 对于 .js 和 .mjs 文件,直接导入\n if (ext === '.js' || ext === '.mjs') {\n const module = await import(pathToFileURL(configPath).href)\n return module.default\n }\n\n // 对于 .ts 文件,使用 esbuild 编译\n const result = await build({\n entryPoints: [configPath],\n bundle: true,\n format: 'esm',\n platform: 'node',\n write: false,\n external: ['@easy-editor/easypack'],\n })\n\n const code = result.outputFiles[0].text\n const tempFile = path.join(path.dirname(configPath), '.easypack.config.tmp.mjs')\n\n fs.writeFileSync(tempFile, code)\n try {\n const module = await import(pathToFileURL(tempFile).href)\n return module.default\n } finally {\n // 清理临时文件\n try {\n fs.unlinkSync(tempFile)\n } catch {\n // 忽略清理错误\n }\n }\n}\n\n/**\n * 查找配置文件\n */\nfunction findConfigFile(cwd: string, customPath?: string): string | null {\n if (customPath) {\n const fullPath = path.isAbsolute(customPath) ? customPath : path.join(cwd, customPath)\n if (fs.existsSync(fullPath)) {\n return fullPath\n }\n throw new Error(`Config file not found: ${customPath}`)\n }\n\n for (const file of CONFIG_FILES) {\n const fullPath = path.join(cwd, file)\n if (fs.existsSync(fullPath)) {\n return fullPath\n }\n }\n\n return null\n}\n\n/**\n * 加载配置\n * @param customConfigPath 自定义配置文件路径\n * @param cwd 工作目录(默认 process.cwd())\n */\nexport async function loadConfig(customConfigPath?: string, cwd: string = process.cwd()): Promise<ResolvedConfig> {\n // 查找配置文件\n const configPath = findConfigFile(cwd, customConfigPath)\n\n if (!configPath) {\n throw new Error(\n `No config file found. Run \\`easypack init\\` to create one.\\nSupported config files: ${CONFIG_FILES.join(', ')}`,\n )\n }\n\n // 读取 package.json\n const pkg = readPackageJson(cwd)\n\n // 加载用户配置\n const userConfig = await loadConfigFile(configPath)\n\n // 解析并返回完整配置\n return resolveConfig(userConfig, pkg)\n}\n\n/**\n * 定义配置的辅助函数\n * 提供类型提示\n */\nexport function defineConfig(config: EasypackConfig): EasypackConfig {\n return config\n}\n\n// 导出类型\nexport { DEFAULT_EXTERNALS, DEFAULT_GLOBALS, deriveGlobalName } from './defaults'\nexport * from './presets'\nexport * from './types'\n","/**\n * Rollup Constants\n * Rollup 相关常量和工具函数\n */\n\n/**\n * 默认的文件扩展名\n */\nexport const DEFAULT_EXTENSIONS = ['.js', '.ts', '.jsx', '.tsx']\n\n/**\n * 首字母大写\n */\nexport function capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\n/**\n * 转换为 PascalCase\n */\nexport function toPascalCase(str: string): string {\n return str\n .split('-')\n .map(part => capitalize(part))\n .join('')\n}\n","/**\n * Rollup Plugins Configuration\n * Rollup 插件配置\n */\n\nimport babel from '@rollup/plugin-babel'\nimport commonjs from '@rollup/plugin-commonjs'\nimport nodeResolve from '@rollup/plugin-node-resolve'\nimport json from '@rollup/plugin-json'\nimport alias from '@rollup/plugin-alias'\nimport cleanup from 'rollup-plugin-cleanup'\nimport postcss from 'rollup-plugin-postcss'\nimport terser from '@rollup/plugin-terser'\nimport type { Plugin as RollupPlugin } from 'rollup'\nimport type { ResolvedConfig } from '../config/types'\nimport { DEFAULT_EXTENSIONS } from './constants'\nimport path from 'node:path'\n\nexport interface CreatePluginsOptions {\n config: ResolvedConfig\n /** 是否添加 terser 压缩 */\n minify?: boolean\n /** 当前工作目录 */\n cwd?: string\n}\n\n/**\n * 创建 Rollup 插件配置\n */\nexport function createPlugins(options: CreatePluginsOptions): RollupPlugin[] {\n const { config, minify = false, cwd = process.cwd() } = options\n // 使用 unknown[] 避免第三方插件之间的 Rollup 版本类型冲突\n const plugins: unknown[] = []\n\n // 路径别名插件\n if (Object.keys(config.alias).length > 0) {\n const entries = Object.entries(config.alias).map(([find, replacement]) => ({\n find,\n replacement: path.resolve(cwd, replacement),\n }))\n plugins.push(alias({ entries }))\n }\n\n // 模块解析\n plugins.push(\n nodeResolve({\n extensions: DEFAULT_EXTENSIONS,\n }),\n )\n\n // CommonJS 支持\n plugins.push(commonjs())\n\n // JSON 支持\n plugins.push(json())\n\n // PostCSS / CSS Modules\n plugins.push(\n postcss({\n modules: {\n generateScopedName: config.css.scopedName,\n },\n autoModules: true,\n minimize: true,\n inject: config.css.mode === 'inject',\n extract: config.css.mode === 'extract' ? config.css.extractFilename : false,\n }),\n )\n\n // Babel 转译\n plugins.push(\n babel({\n extensions: DEFAULT_EXTENSIONS,\n exclude: 'node_modules/**',\n babelrc: false,\n babelHelpers: 'bundled',\n presets: [\n ['@babel/preset-react', { runtime: config.jsxRuntime }],\n ['@babel/preset-typescript', { allowDeclareFields: true }],\n ],\n }),\n )\n\n // 代码清理\n plugins.push(\n cleanup({\n comments: ['some', /PURE/],\n extensions: ['.js', '.ts'],\n }),\n )\n\n // 压缩\n if (minify) {\n plugins.push(terser())\n }\n\n return plugins as RollupPlugin[]\n}\n","/**\n * Rollup Outputs Configuration\n * Rollup 输出配置生成\n */\n\nimport type { RollupOptions } from 'rollup'\nimport type { ResolvedConfig } from '../config/types'\nimport { createPlugins } from './plugins'\nimport { capitalize } from './constants'\n\nexport type BuildType = 'full' | 'meta' | 'component'\n\nexport interface CreateOutputConfigOptions {\n config: ResolvedConfig\n input: string\n type: BuildType\n cwd?: string\n}\n\n/**\n * 创建 banner 注释\n */\nfunction createBanner(pkgName: string, version: string, suffix?: string): string {\n const suffixPart = suffix ? ` (${suffix})` : ''\n return `/* ${pkgName} v${version}${suffixPart} */`\n}\n\n/**\n * 获取外部依赖列表\n */\nfunction getExternals(config: ResolvedConfig): string[] {\n return config.external.externals\n}\n\n/**\n * 获取全局变量映射\n */\nfunction getGlobals(config: ResolvedConfig): Record<string, string> {\n return config.external.globals\n}\n\n/**\n * 根据构建类型获取 UMD 名称\n */\nfunction getUmdName(globalName: string, type: BuildType): string {\n switch (type) {\n case 'meta':\n return `${globalName}Meta`\n case 'component':\n return `${globalName}Component`\n default:\n return globalName\n }\n}\n\n/**\n * 根据构建类型获取文件前缀\n */\nfunction getFilePrefix(type: BuildType): string {\n switch (type) {\n case 'meta':\n return 'meta'\n case 'component':\n return 'component'\n default:\n return 'index'\n }\n}\n\n/**\n * 创建单个入口的所有输出配置\n * minify 决定是否生成压缩版本(true: 只生成压缩版本,false: 只生成非压缩版本)\n */\nexport function createOutputConfigs(options: CreateOutputConfigOptions): RollupOptions[] {\n const { config, input, type, cwd = process.cwd() } = options\n const configs: RollupOptions[] = []\n\n const external = getExternals(config)\n const globals = getGlobals(config)\n const umdName = getUmdName(config.globalName, type)\n const filePrefix = getFilePrefix(type)\n const { pkg, output: outputConfig } = config\n const { minify } = outputConfig\n\n const plugins = createPlugins({ config, minify, cwd })\n\n // ESM 构建\n if (outputConfig.esm) {\n const filename = minify ? `${filePrefix}.min.esm.js` : `${filePrefix}.esm.js`\n configs.push({\n input,\n output: {\n file: `${outputConfig.dir}/${filename}`,\n format: 'esm',\n sourcemap: outputConfig.sourcemap,\n banner: createBanner(pkg.name, pkg.version, minify ? 'minified' : undefined),\n exports: 'named',\n },\n plugins,\n external,\n })\n }\n\n // UMD 构建\n if (outputConfig.umd) {\n const filename = minify ? `${filePrefix}.min.js` : `${filePrefix}.js`\n configs.push({\n input,\n output: {\n file: `${outputConfig.dir}/${filename}`,\n format: 'umd',\n name: umdName,\n globals,\n sourcemap: outputConfig.sourcemap,\n banner: createBanner(pkg.name, pkg.version, minify ? 'minified' : undefined),\n exports: 'named',\n },\n plugins,\n external,\n })\n }\n\n // CJS 构建(仅完整构建)\n if (type === 'full' && outputConfig.cjs) {\n const filename = minify ? `${filePrefix}.min.cjs` : `${filePrefix}.cjs`\n configs.push({\n input,\n output: {\n file: `${outputConfig.dir}/${filename}`,\n format: 'cjs',\n sourcemap: outputConfig.sourcemap,\n exports: 'named',\n },\n plugins,\n external,\n })\n }\n\n return configs\n}\n","/**\n * Rollup Configuration Generator\n * Rollup 配置生成器\n */\n\nimport type { RollupOptions } from 'rollup'\nimport type { ResolvedConfig } from '../config/types'\nimport { createOutputConfigs } from './outputs'\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nexport interface CreateRollupConfigOptions {\n config: ResolvedConfig\n cwd?: string\n}\n\n/**\n * 检查入口文件是否存在\n */\nfunction entryExists(entry: string, cwd: string): boolean {\n const fullPath = path.join(cwd, entry)\n return fs.existsSync(fullPath)\n}\n\n/**\n * 创建 Rollup 配置\n */\nexport function createRollupConfig(options: CreateRollupConfigOptions): RollupOptions[] {\n const { config, cwd = process.cwd() } = options\n const configs: RollupOptions[] = []\n\n // 对于 material 预设,生成分离构建(meta + component)\n if (config.preset === 'material') {\n // Meta 构建\n if (config.entry.meta && entryExists(config.entry.meta, cwd)) {\n configs.push(\n ...createOutputConfigs({\n config,\n input: config.entry.meta,\n type: 'meta',\n cwd,\n }),\n )\n }\n\n // Component 构建\n if (config.entry.component && entryExists(config.entry.component, cwd)) {\n configs.push(\n ...createOutputConfigs({\n config,\n input: config.entry.component,\n type: 'component',\n cwd,\n }),\n )\n }\n }\n\n // 完整构建(所有预设都需要)\n if (config.entry.main && entryExists(config.entry.main, cwd)) {\n configs.push(\n ...createOutputConfigs({\n config,\n input: config.entry.main,\n type: 'full',\n cwd,\n }),\n )\n } else {\n throw new Error(`Main entry file not found: ${config.entry.main}`)\n }\n\n return configs\n}\n\n// 导出子模块\nexport * from './constants'\nexport * from './plugins'\nexport * from './outputs'\n","/**\n * Build Command\n * 生产构建命令\n */\n\nimport { spawn } from 'node:child_process'\nimport pc from 'picocolors'\nimport { rollup } from 'rollup'\nimport type { CliArgs } from '../index'\nimport { loadConfig } from '../../config'\nimport { createRollupConfig } from '../../rollup'\nimport type { ResolvedConfig } from '../../config/types'\n\n/**\n * 生成 TypeScript 类型声明\n */\nasync function generateTypes(config: ResolvedConfig): Promise<string[]> {\n return new Promise((resolve, reject) => {\n // 使用 execSync 更简洁,避免 shell: true 的安全警告\n const args = ['tsc', '--declaration', '--emitDeclarationOnly', '--outDir', config.output.dir]\n const tsc = spawn('npx', args, {\n stdio: 'pipe',\n })\n\n let stderr = ''\n tsc.stderr?.on('data', data => {\n stderr += data.toString()\n })\n\n tsc.on('close', code => {\n if (code === 0) {\n resolve([`${config.output.dir}/index.d.ts`])\n } else {\n reject(new Error(`TypeScript compilation failed:\\n${stderr}`))\n }\n })\n\n tsc.on('error', reject)\n })\n}\n\nexport async function buildCommand(argv: CliArgs): Promise<void> {\n const startTime = Date.now()\n console.log(pc.cyan('Building for production...\\n'))\n\n // 加载配置\n const config = await loadConfig(argv.config)\n\n console.log(pc.gray(` Package: ${config.pkg.name}@${config.pkg.version}`))\n console.log(pc.gray(` Preset: ${config.preset}`))\n console.log(pc.gray(` Output: ${config.output.dir}/\\n`))\n\n // 生成 Rollup 配置\n const rollupConfigs = createRollupConfig({ config })\n\n let fileCount = 0\n\n // 执行构建\n for (const rollupConfig of rollupConfigs) {\n const bundle = await rollup(rollupConfig)\n\n const outputs = Array.isArray(rollupConfig.output) ? rollupConfig.output : [rollupConfig.output]\n\n for (const output of outputs) {\n if (output && output.file) {\n await bundle.write(output)\n console.log(pc.green(` ✓ ${output.file}`))\n fileCount++\n }\n }\n\n await bundle.close()\n }\n\n // 生成类型声明\n if (config.output.types) {\n try {\n const typeFiles = await generateTypes(config)\n for (const file of typeFiles) {\n console.log(pc.green(` ✓ ${file}`))\n fileCount++\n }\n } catch (error) {\n console.log(pc.yellow(` ⚠ Types generation skipped (no tsconfig.json or tsc error)`))\n }\n }\n\n const duration = Date.now() - startTime\n console.log('')\n console.log(pc.green(`Build completed! `) + pc.gray(`(${fileCount} files in ${duration}ms)`))\n}\n","/**\n * Vite Plugin: External Dependencies\n * 外部依赖插件 - 在开发模式下将 React/ReactDOM 外部化\n *\n * 用途:\n * - 防止 Vite 将 React/ReactDOM 打包进开发服务器的模块\n * - 强制使用父应用(dashboard)提供的 React 实例\n * - 解决双 React 实例导致的 \"Invalid hook call\" 错误\n */\n\nimport type { Plugin } from 'vite'\n\nexport interface ExternalDepsOptions {\n /** 需要外部化的依赖列表 */\n externals?: string[]\n /** 全局变量映射 */\n globals?: Record<string, string>\n}\n\nconst DEFAULT_EXTERNALS = ['react', 'react-dom', 'react/jsx-runtime']\n\nconst DEFAULT_GLOBALS: Record<string, string> = {\n react: 'React',\n 'react-dom': 'ReactDOM',\n 'react/jsx-runtime': 'jsxRuntime',\n}\n\n// 虚拟模块前缀\nconst VIRTUAL_PREFIX = '\\0virtual:external:'\n\n/**\n * 生成 React 模块的虚拟代码\n */\nfunction generateReactCode(globalName: string): string {\n return `\n// External module: react -> window.${globalName}\nconst React = window.${globalName};\nif (!React) {\n throw new Error(\n 'External dependency \"react\" (window.${globalName}) is not available. ' +\n 'Make sure the parent application has loaded it globally.'\n );\n}\n\nexport default React;\n\nexport const {\n useState, useEffect, useContext, useReducer, useCallback, useMemo,\n useRef, useImperativeHandle, useLayoutEffect, useDebugValue,\n useDeferredValue, useTransition, useId, useSyncExternalStore,\n Fragment, StrictMode, Suspense, createElement, createContext,\n forwardRef, lazy, memo, startTransition, Component, PureComponent,\n Children, cloneElement, isValidElement,\n} = React;\n`\n}\n\n/**\n * 生成 ReactDOM 模块的虚拟代码\n */\nfunction generateReactDomCode(globalName: string): string {\n return `\n// External module: react-dom -> window.${globalName}\nconst ReactDOM = window.${globalName};\nif (!ReactDOM) {\n throw new Error(\n 'External dependency \"react-dom\" (window.${globalName}) is not available. ' +\n 'Make sure the parent application has loaded it globally.'\n );\n}\n\nexport default ReactDOM;\n\nexport const {\n createRoot, hydrateRoot, render, hydrate,\n unmountComponentAtNode, findDOMNode, flushSync,\n} = ReactDOM;\n`\n}\n\n/**\n * 生成 JSX Runtime 模块的虚拟代码\n */\nfunction generateJsxRuntimeCode(globalName: string): string {\n return `\n// External module: react/jsx-runtime -> window.${globalName}\nconst jsxRuntime = window.${globalName};\nif (!jsxRuntime) {\n throw new Error(\n 'External dependency \"react/jsx-runtime\" (window.${globalName}) is not available. ' +\n 'Make sure the parent application has loaded it globally.'\n );\n}\n\nexport const { jsx, jsxs, Fragment } = jsxRuntime;\nexport default jsxRuntime;\n`\n}\n\n/**\n * 生成 @easy-editor/core 模块的虚拟代码\n */\nfunction generateEasyEditorCoreCode(globalName: string): string {\n return `\n// External module: @easy-editor/core -> window.${globalName}\nconst EasyEditorCore = window.${globalName};\nif (!EasyEditorCore) {\n throw new Error(\n 'External dependency \"@easy-editor/core\" (window.${globalName}) is not available. ' +\n 'Make sure the parent application has loaded it globally.'\n );\n}\n\nexport default EasyEditorCore;\n\n// 动态导出所有属性\nconst keys = Object.keys(EasyEditorCore || {});\nkeys.forEach(key => {\n Object.defineProperty(module.exports, key, {\n get: () => EasyEditorCore[key],\n enumerable: true,\n });\n});\n`\n}\n\n/**\n * 生成通用模块的虚拟代码\n */\nfunction generateGenericCode(moduleName: string, globalName: string): string {\n return `\n// External module: ${moduleName} -> window.${globalName}\nconst mod = window.${globalName};\nif (!mod) {\n throw new Error(\n 'External dependency \"${moduleName}\" (window.${globalName}) is not available. ' +\n 'Make sure the parent application has loaded it globally.'\n );\n}\nexport default mod;\n`\n}\n\n/**\n * 创建外部依赖插件\n */\nexport function externalDepsPlugin(options: ExternalDepsOptions = {}): Plugin {\n const externals = options.externals || DEFAULT_EXTERNALS\n const globals = { ...DEFAULT_GLOBALS, ...options.globals }\n\n return {\n name: 'vite-plugin-external-deps',\n enforce: 'pre',\n\n // 在开发模式下拦截模块解析\n resolveId(id) {\n if (externals.includes(id)) {\n return VIRTUAL_PREFIX + id\n }\n return null\n },\n\n // 加载外部模块的代理代码\n load(id) {\n if (!id.startsWith(VIRTUAL_PREFIX)) {\n return null\n }\n\n const moduleName = id.slice(VIRTUAL_PREFIX.length)\n const globalName = globals[moduleName]\n\n if (!globalName) {\n throw new Error(\n `[vite-plugin-external-deps] No global mapping found for \"${moduleName}\". ` +\n 'Please add it to the globals option.',\n )\n }\n\n // 根据模块名生成对应的虚拟代码\n switch (moduleName) {\n case 'react':\n return generateReactCode(globalName)\n case 'react-dom':\n return generateReactDomCode(globalName)\n case 'react/jsx-runtime':\n return generateJsxRuntimeCode(globalName)\n case '@easy-editor/core':\n return generateEasyEditorCoreCode(globalName)\n default:\n return generateGenericCode(moduleName, globalName)\n }\n },\n\n // 配置 Rollup 外部化(用于构建)\n config() {\n return {\n build: {\n rollupOptions: {\n external: externals,\n output: {\n globals,\n },\n },\n },\n }\n },\n }\n}\n","/**\n * Vite Plugin: Material Development\n * 物料开发插件 - 提供物料调试所需的 API 和 WebSocket 通知\n */\n\nimport type { Plugin, ViteDevServer } from 'vite'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport { WebSocketServer, WebSocket } from 'ws'\n\nexport interface MaterialDevPluginOptions {\n /** 物料入口文件路径 */\n entry?: string\n}\n\n/**\n * 物料开发插件\n * 提供:\n * - /api/health - 健康检查\n * - /api/material - 物料信息\n * - WebSocket 通知 - 文件变更时通知连接的客户端\n */\nexport function materialDevPlugin(options: MaterialDevPluginOptions = {}): Plugin {\n const { entry = '/src/index.tsx' } = options\n\n let server: ViteDevServer\n let wss: WebSocketServer | null = null\n const clients = new Set<WebSocket>()\n\n // 广播消息给所有连接的客户端\n function broadcast(message: object) {\n const data = JSON.stringify(message)\n for (const client of clients) {\n if (client.readyState === WebSocket.OPEN) {\n client.send(data)\n }\n }\n }\n\n return {\n name: 'vite-plugin-material-dev',\n\n configureServer(_server) {\n server = _server\n\n // 创建 WebSocket 服务器,复用 Vite 的 HTTP 服务器\n wss = new WebSocketServer({ noServer: true })\n\n // 处理 WebSocket 升级请求\n server.httpServer?.on('upgrade', (request, socket, head) => {\n // 只处理 /ws 路径的 WebSocket 请求,避免与 Vite HMR 冲突\n if (request.url === '/ws' || request.url === '/__material_ws__') {\n wss?.handleUpgrade(request, socket, head, ws => {\n wss?.emit('connection', ws, request)\n })\n }\n })\n\n wss.on('connection', ws => {\n clients.add(ws)\n\n // 发送连接成功消息\n ws.send(\n JSON.stringify({\n type: 'connected',\n message: 'Material dev server connected',\n timestamp: Date.now(),\n }),\n )\n\n ws.on('close', () => {\n clients.delete(ws)\n })\n\n ws.on('error', () => {\n clients.delete(ws)\n })\n })\n\n // 处理 CORS 预检请求\n server.middlewares.use((req: IncomingMessage, res: ServerResponse, next: () => void) => {\n if (req.method === 'OPTIONS') {\n res.setHeader('Access-Control-Allow-Origin', '*')\n res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')\n res.setHeader('Access-Control-Allow-Headers', 'Content-Type')\n res.statusCode = 204\n res.end()\n return\n }\n next()\n })\n\n // 健康检查 API\n server.middlewares.use('/api/health', (_req: IncomingMessage, res: ServerResponse) => {\n res.setHeader('Content-Type', 'application/json')\n res.setHeader('Access-Control-Allow-Origin', '*')\n res.end(\n JSON.stringify({\n status: 'ok',\n timestamp: Date.now(),\n server: 'vite',\n wsPath: '/ws',\n }),\n )\n })\n\n // 物料信息 API\n server.middlewares.use('/api/material', async (_req: IncomingMessage, res: ServerResponse) => {\n res.setHeader('Content-Type', 'application/json')\n res.setHeader('Access-Control-Allow-Origin', '*')\n\n try {\n // 使用 Vite 的 SSR 模块加载能力加载物料模块\n const module = await server.ssrLoadModule(entry)\n\n const meta = module.meta || module.default?.meta\n const component = module.component || module.default\n\n if (!meta) {\n res.statusCode = 400\n res.end(\n JSON.stringify({\n error: 'Material meta not found. Make sure to export \"meta\" from the entry file.',\n }),\n )\n return\n }\n\n // 返回物料信息\n const materialInfo = {\n name: meta.componentName,\n title: meta.title,\n version: meta.npm?.version || '0.0.0-dev',\n group: meta.group,\n category: meta.category,\n entry,\n hasComponent: !!component,\n hasMeta: !!meta,\n hasConfigure: !!meta.configure,\n hasSnippets: Array.isArray(meta.snippets) && meta.snippets.length > 0,\n wsPath: '/ws',\n }\n\n res.end(JSON.stringify(materialInfo))\n } catch (error) {\n res.statusCode = 500\n res.end(\n JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n )\n }\n })\n\n // 在服务器启动时打印信息\n server.httpServer?.once('listening', () => {\n const address = server.httpServer?.address()\n const port = typeof address === 'object' && address ? address.port : 5001\n const host = server.config.server.host || 'localhost'\n\n setTimeout(() => {\n console.log('')\n console.log('\\x1b[36m%s\\x1b[0m', ' Material Dev Server Ready')\n console.log('')\n console.log(` Health Check: http://${host}:${port}/api/health`)\n console.log(` Material Info: http://${host}:${port}/api/material`)\n console.log(` Module Entry: http://${host}:${port}${entry}`)\n console.log(` WebSocket: ws://${host}:${port}/ws`)\n console.log('')\n console.log('\\x1b[33m%s\\x1b[0m', ' Connect this URL in EasyEditor to start debugging')\n console.log('')\n }, 100)\n })\n },\n\n // 监听 Vite 的 HMR 事件,转发给我们的 WebSocket 客户端\n handleHotUpdate({ file, modules }) {\n // 通知所有连接的客户端\n broadcast({\n type: 'update',\n file,\n timestamp: Date.now(),\n modules: modules.map(m => m.id),\n })\n\n // 返回 undefined 让 Vite 继续处理 HMR\n return\n },\n\n // 插件关闭时清理\n closeBundle() {\n if (wss) {\n for (const client of clients) {\n client.close()\n }\n clients.clear()\n wss.close()\n wss = null\n }\n },\n }\n}\n","/**\n * Vite Configuration Generator\n * Vite 配置生成器\n */\n\nimport type { UserConfig } from 'vite'\nimport react from '@vitejs/plugin-react'\nimport type { ResolvedConfig } from '../config/types'\nimport { externalDepsPlugin } from './plugins/external-deps'\nimport { materialDevPlugin } from './plugins/material-dev'\nimport path from 'node:path'\n\nexport interface CreateViteConfigOptions {\n config: ResolvedConfig\n cwd?: string\n}\n\n/**\n * 创建 Vite 开发服务器配置\n */\nexport function createViteConfig(options: CreateViteConfigOptions): UserConfig {\n const { config, cwd = process.cwd() } = options\n\n // 直接使用已解析的配置(已包含默认值)\n const { externals, globals } = config.external\n\n const plugins: UserConfig['plugins'] = [react()]\n\n // 外部依赖插件\n plugins.push(externalDepsPlugin({ externals, globals }))\n\n // 物料开发插件(仅 material 预设启用)\n if (config.dev.materialApi) {\n plugins.push(materialDevPlugin({ entry: `/${config.entry.main}` }))\n }\n\n // 用户自定义插件\n if (config.vitePlugins.length > 0) {\n plugins.push(...config.vitePlugins)\n }\n\n // 路径别名\n const aliasConfig: Record<string, string> = {}\n for (const [key, value] of Object.entries(config.alias)) {\n aliasConfig[key] = path.resolve(cwd, value)\n }\n\n return {\n plugins,\n server: {\n port: config.dev.port,\n host: 'localhost',\n cors: true,\n hmr: {\n port: config.dev.port,\n },\n },\n build: {\n target: 'esnext',\n rollupOptions: {\n external: externals,\n output: {\n globals,\n },\n },\n },\n resolve: {\n alias: aliasConfig,\n dedupe: ['react', 'react-dom'],\n },\n css: {\n modules: {\n generateScopedName: config.css.scopedName,\n },\n },\n }\n}\n\n// 导出插件\nexport * from './plugins'\n","/**\n * Dev Command\n * 开发服务器命令\n */\n\nimport pc from 'picocolors'\nimport { createServer } from 'vite'\nimport type { CliArgs } from '../index'\nimport { loadConfig } from '../../config'\nimport { createViteConfig } from '../../vite'\n\nexport async function devCommand(argv: CliArgs): Promise<void> {\n console.log(pc.cyan('Starting development server...\\n'))\n\n // 加载配置\n const config = await loadConfig(argv.config)\n\n console.log(pc.gray(` Package: ${config.pkg.name}@${config.pkg.version}`))\n console.log(pc.gray(` Preset: ${config.preset}`))\n console.log(pc.gray(` Port: ${config.dev.port}\\n`))\n\n // 创建 Vite 配置\n const viteConfig = createViteConfig({ config })\n\n // 创建并启动开发服务器\n const server = await createServer(viteConfig)\n await server.listen()\n\n // Vite 会自动打印服务器地址\n server.printUrls()\n\n // 监听退出信号\n const shutdown = async () => {\n console.log(pc.yellow('\\nShutting down...'))\n await server.close()\n process.exit(0)\n }\n\n process.on('SIGINT', shutdown)\n process.on('SIGTERM', shutdown)\n}\n","/**\n * Init Command\n * 初始化配置文件命令\n */\n\nimport * as prompts from '@clack/prompts'\nimport pc from 'picocolors'\nimport fs from 'node:fs'\nimport path from 'node:path'\nimport type { CliArgs } from '../index'\n\nconst MATERIAL_TEMPLATE = `/**\n * @easy-editor/easypack configuration\n * @type {import('@easy-editor/easypack').EasypackConfig}\n */\nexport default {\n preset: 'material',\n // globalName 自动从 package.json 推导\n dev: {\n port: 5001,\n },\n // output: {\n // umd: true, // UMD 格式(默认开启)\n // esm: false, // ESM 格式\n // cjs: false, // CJS 格式\n // minify: true, // 压缩输出(默认开启)\n // types: false, // TypeScript 类型声明\n // },\n}\n`\n\nconst SETTER_TEMPLATE = `/**\n * @easy-editor/easypack configuration\n * @type {import('@easy-editor/easypack').EasypackConfig}\n */\nexport default {\n preset: 'setter',\n globalName: 'EasyEditorSetters',\n // output: {\n // umd: true, // UMD 格式(默认开启)\n // esm: false, // ESM 格式\n // cjs: false, // CJS 格式\n // minify: true, // 压缩输出(默认开启)\n // types: false, // TypeScript 类型声明\n // },\n}\n`\n\nconst LIBRARY_TEMPLATE = `/**\n * @easy-editor/easypack configuration\n * @type {import('@easy-editor/easypack').EasypackConfig}\n */\nexport default {\n preset: 'library',\n // globalName: 'MyLibrary',\n // output: {\n // umd: true, // UMD 格式(默认开启)\n // esm: false, // ESM 格式\n // cjs: false, // CJS 格式\n // minify: true, // 压缩输出(默认开启)\n // types: false, // TypeScript 类型声明\n // },\n}\n`\n\nexport async function initCommand(argv: CliArgs): Promise<void> {\n const cwd = process.cwd()\n const configPath = path.join(cwd, 'easypack.config.ts')\n\n // 检查是否已存在配置文件\n if (fs.existsSync(configPath)) {\n const overwrite = await prompts.confirm({\n message: 'easypack.config.ts already exists. Overwrite?',\n })\n\n if (prompts.isCancel(overwrite) || !overwrite) {\n prompts.cancel('Operation cancelled')\n return\n }\n }\n\n // 选择预设\n let preset = argv.preset\n if (!preset) {\n const selected = await prompts.select({\n message: 'Select a preset:',\n options: [\n {\n label: 'material',\n value: 'material',\n hint: 'For EasyMaterials components',\n },\n {\n label: 'setter',\n value: 'setter',\n hint: 'For EasySetters package',\n },\n {\n label: 'library',\n value: 'library',\n hint: 'For general React libraries',\n },\n ],\n })\n\n if (prompts.isCancel(selected)) {\n prompts.cancel('Operation cancelled')\n return\n }\n\n preset = selected as string\n }\n\n // 根据预设选择模板\n let template: string\n switch (preset) {\n case 'material':\n template = MATERIAL_TEMPLATE\n break\n case 'setter':\n template = SETTER_TEMPLATE\n break\n case 'library':\n default:\n template = LIBRARY_TEMPLATE\n break\n }\n\n // 写入配置文件\n fs.writeFileSync(configPath, template)\n\n console.log('')\n console.log(pc.green('✓ Created easypack.config.ts'))\n console.log('')\n console.log(pc.gray('Next steps:'))\n console.log(pc.gray(' 1. Review and customize the config file'))\n console.log(pc.gray(' 2. Run `easypack build` to build for production'))\n console.log(pc.gray(' 3. Run `easypack dev` to start dev server'))\n console.log('')\n}\n","/**\n * CLI Main Program\n * CLI 主程序\n */\n\nimport mri from 'mri'\nimport pc from 'picocolors'\nimport { buildCommand } from './commands/build'\nimport { devCommand } from './commands/dev'\nimport { initCommand } from './commands/init'\n\nconst VERSION = '0.0.1'\n\nconst helpMessage = `\n${pc.bold(pc.cyan('@easy-editor/easypack'))} - Build and dev tools for EasyEditor ecosystem\n\n${pc.bold('Usage:')}\n easypack <command> [options]\n\n${pc.bold('Commands:')}\n build Build for production\n dev Start development server\n init Generate config file template\n\n${pc.bold('Options:')}\n -c, --config <file> Config file path\n -h, --help Show help\n -v, --version Show version\n\n${pc.bold('Examples:')}\n ${pc.gray('# Build for production')}\n easypack build\n\n ${pc.gray('# Start dev server')}\n easypack dev\n\n ${pc.gray('# Generate config template')}\n easypack init\n`\n\nexport interface CliArgs {\n _: string[]\n help?: boolean\n version?: boolean\n config?: string\n preset?: string\n}\n\nexport async function cli(): Promise<void> {\n const argv = mri<CliArgs>(process.argv.slice(2), {\n alias: {\n h: 'help',\n v: 'version',\n c: 'config',\n p: 'preset',\n },\n boolean: ['help', 'version'],\n string: ['config', 'preset'],\n })\n\n // 显示版本\n if (argv.version) {\n console.log(VERSION)\n return\n }\n\n // 显示帮助或无命令时\n if (argv.help || argv._.length === 0) {\n console.log(helpMessage)\n return\n }\n\n const command = argv._[0]\n\n try {\n switch (command) {\n case 'build':\n await buildCommand(argv)\n break\n case 'dev':\n await devCommand(argv)\n break\n case 'init':\n await initCommand(argv)\n break\n default:\n console.log(pc.red(`Unknown command: ${command}`))\n console.log(helpMessage)\n process.exit(1)\n }\n } catch (error) {\n console.error(pc.red('Error:'), error instanceof Error ? error.message : error)\n process.exit(1)\n }\n}\n","/**\n * CLI Entry Point\n * CLI 可执行入口\n */\n\nimport { cli } from './cli'\n\ncli()\n"],"names":["materialPreset","entry","main","meta","component","output","dir","umd","minify","css","scopedName","mode","jsxRuntime","dev","port","materialApi","setterPreset","extractFilename","alias","libraryPreset","getPreset","preset","Error","DEFAULT_EXTERNALS","DEFAULT_GLOBALS","react","DEFAULT_ENTRY","DEFAULT_OUTPUT","esm","cjs","sourcemap","types","DEFAULT_CSS","DEFAULT_DEV","deriveGlobalName","pkgName","withoutScope","replace","startsWith","componentName","toPascalCase","str","split","map","part","charAt","toUpperCase","slice","join","deepMerge","target","source","result","key","Object","keys","sourceValue","targetValue","undefined","Array","isArray","resolveConfig","userConfig","pkg","presetConfig","merged","resolved","globalName","name","external","externals","globals","vitePlugins","CONFIG_FILES","readPackageJson","cwd","pkgPath","path","fs","existsSync","content","readFileSync","JSON","parse","version","loadConfigFile","configPath","ext","extname","module","pathToFileURL","href","default","build","entryPoints","bundle","format","platform","write","code","outputFiles","text","tempFile","dirname","writeFileSync","unlinkSync","findConfigFile","customPath","fullPath","isAbsolute","file","loadConfig","customConfigPath","process","DEFAULT_EXTENSIONS","createPlugins","options","config","plugins","length","entries","find","replacement","resolve","push","nodeResolve","extensions","commonjs","json","postcss","modules","generateScopedName","autoModules","minimize","inject","extract","babel","exclude","babelrc","babelHelpers","presets","runtime","allowDeclareFields","cleanup","comments","terser","createBanner","suffix","suffixPart","getExternals","getGlobals","getUmdName","type","getFilePrefix","createOutputConfigs","input","configs","umdName","filePrefix","outputConfig","filename","banner","exports","entryExists","createRollupConfig","generateTypes","Promise","reject","args","tsc","spawn","stdio","stderr","on","data","toString","buildCommand","argv","startTime","Date","now","console","log","pc","cyan","gray","rollupConfigs","fileCount","rollupConfig","rollup","outputs","green","close","typeFiles","error","yellow","duration","VIRTUAL_PREFIX","generateReactCode","generateReactDomCode","generateJsxRuntimeCode","generateEasyEditorCoreCode","generateGenericCode","moduleName","externalDepsPlugin","enforce","resolveId","id","includes","load","rollupOptions","materialDevPlugin","server","wss","clients","Set","broadcast","message","stringify","client","readyState","WebSocket","OPEN","send","configureServer","_server","WebSocketServer","noServer","httpServer","request","socket","head","url","handleUpgrade","ws","emit","add","timestamp","delete","middlewares","use","req","res","next","method","setHeader","statusCode","end","_req","status","wsPath","ssrLoadModule","materialInfo","title","npm","group","category","hasComponent","hasMeta","hasConfigure","configure","hasSnippets","snippets","String","once","address","host","setTimeout","handleHotUpdate","m","closeBundle","clear","createViteConfig","aliasConfig","value","cors","hmr","dedupe","devCommand","viteConfig","createServer","listen","printUrls","shutdown","exit","MATERIAL_TEMPLATE","SETTER_TEMPLATE","LIBRARY_TEMPLATE","initCommand","overwrite","prompts","confirm","isCancel","cancel","selected","select","label","hint","template","VERSION","helpMessage","bold","cli","mri","h","v","c","p","boolean","string","help","_","command","red"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Build Command
3
+ * 生产构建命令
4
+ */
5
+ import type { CliArgs } from '../index';
6
+ export declare function buildCommand(argv: CliArgs): Promise<void>;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Dev Command
3
+ * 开发服务器命令
4
+ */
5
+ import type { CliArgs } from '../index';
6
+ export declare function devCommand(argv: CliArgs): Promise<void>;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Init Command
3
+ * 初始化配置文件命令
4
+ */
5
+ import type { CliArgs } from '../index';
6
+ export declare function initCommand(argv: CliArgs): Promise<void>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * CLI Main Program
3
+ * CLI 主程序
4
+ */
5
+ export interface CliArgs {
6
+ _: string[];
7
+ help?: boolean;
8
+ version?: boolean;
9
+ config?: string;
10
+ preset?: string;
11
+ }
12
+ export declare function cli(): Promise<void>;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Default Configuration
3
+ * 默认配置和配置合并逻辑
4
+ */
5
+ import type { EasypackConfig, ResolvedConfig } from './types';
6
+ /**
7
+ * 默认的外部依赖
8
+ */
9
+ export declare const DEFAULT_EXTERNALS: string[];
10
+ /**
11
+ * 默认的全局变量映射
12
+ */
13
+ export declare const DEFAULT_GLOBALS: Record<string, string>;
14
+ /**
15
+ * 默认入口配置
16
+ */
17
+ export declare const DEFAULT_ENTRY: {
18
+ readonly main: "src/index.ts";
19
+ readonly meta: "src/meta.ts";
20
+ readonly component: "src/component.tsx";
21
+ };
22
+ /**
23
+ * 默认输出配置
24
+ */
25
+ export declare const DEFAULT_OUTPUT: {
26
+ readonly dir: "dist";
27
+ readonly esm: false;
28
+ readonly cjs: false;
29
+ readonly umd: true;
30
+ readonly minify: true;
31
+ readonly sourcemap: false;
32
+ readonly types: false;
33
+ };
34
+ /**
35
+ * 默认 CSS 配置
36
+ */
37
+ export declare const DEFAULT_CSS: {
38
+ scopedName: string;
39
+ mode: "inject";
40
+ extractFilename: string;
41
+ };
42
+ /**
43
+ * 默认开发服务器配置
44
+ */
45
+ export declare const DEFAULT_DEV: {
46
+ readonly port: 5001;
47
+ readonly materialApi: true;
48
+ };
49
+ /**
50
+ * 从包名推导全局变量名
51
+ *
52
+ * @example
53
+ * '@easy-editor/materials-dashboard-bar-chart' → 'EasyEditorMaterialsBarChart'
54
+ * '@easy-editor/setters' → 'EasyEditorSetters'
55
+ */
56
+ export declare function deriveGlobalName(pkgName: string): string;
57
+ /**
58
+ * 解析并合并配置
59
+ */
60
+ export declare function resolveConfig(userConfig: EasypackConfig, pkg: {
61
+ name: string;
62
+ version: string;
63
+ }): ResolvedConfig;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Configuration Loader
3
+ * 配置加载器 - 加载和解析 easypack.config.ts
4
+ */
5
+ import type { EasypackConfig, ResolvedConfig } from './types';
6
+ /**
7
+ * 加载配置
8
+ * @param customConfigPath 自定义配置文件路径
9
+ * @param cwd 工作目录(默认 process.cwd())
10
+ */
11
+ export declare function loadConfig(customConfigPath?: string, cwd?: string): Promise<ResolvedConfig>;
12
+ /**
13
+ * 定义配置的辅助函数
14
+ * 提供类型提示
15
+ */
16
+ export declare function defineConfig(config: EasypackConfig): EasypackConfig;
17
+ export { DEFAULT_EXTERNALS, DEFAULT_GLOBALS, deriveGlobalName } from './defaults';
18
+ export * from './presets';
19
+ export * from './types';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Presets Export
3
+ * 预设导出
4
+ */
5
+ export { materialPreset } from './material';
6
+ export { setterPreset } from './setter';
7
+ export { libraryPreset } from './library';
8
+ import type { Preset, EasypackConfig } from '../types';
9
+ /**
10
+ * 根据预设名称获取预设配置
11
+ */
12
+ export declare function getPreset(preset: Preset): Partial<EasypackConfig>;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Library Preset - 通用库预设
3
+ * 适用于普通的 React 组件库
4
+ */
5
+ import type { EasypackConfig } from '../types';
6
+ export declare const libraryPreset: Partial<EasypackConfig>;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Material Preset - 物料组件预设
3
+ * 适用于 EasyMaterials 中的独立物料包
4
+ */
5
+ import type { EasypackConfig } from '../types';
6
+ export declare const materialPreset: Partial<EasypackConfig>;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Setter Preset - 设置器预设
3
+ * 适用于 EasySetters 统一设置器包
4
+ */
5
+ import type { EasypackConfig } from '../types';
6
+ export declare const setterPreset: Partial<EasypackConfig>;
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Easypack Configuration Types
3
+ * 构建工具配置类型定义
4
+ */
5
+ import type { Plugin as VitePlugin } from 'vite';
6
+ /**
7
+ * 预设类型
8
+ */
9
+ export type Preset = 'material' | 'setter' | 'library';
10
+ /**
11
+ * CSS 处理模式
12
+ */
13
+ export type CssMode = 'inject' | 'extract';
14
+ /**
15
+ * JSX 运行时
16
+ */
17
+ export type JsxRuntime = 'automatic' | 'classic';
18
+ /**
19
+ * 入口文件配置
20
+ */
21
+ export interface EntryConfig {
22
+ /** 主入口(默认 'src/index.tsx' 或 'src/index.ts') */
23
+ main?: string;
24
+ /** 元数据入口(仅 material 预设,默认 'src/meta.ts') */
25
+ meta?: string;
26
+ /** 组件入口(仅 material 预设,默认 'src/component.tsx') */
27
+ component?: string;
28
+ }
29
+ /**
30
+ * 输出配置
31
+ * minify 作为修饰符,决定是否压缩选中的格式
32
+ */
33
+ export interface OutputConfig {
34
+ /** 输出目录(默认 'dist') */
35
+ dir?: string;
36
+ /** 是否生成 ESM 格式(默认 false) */
37
+ esm?: boolean;
38
+ /** 是否生成 CJS 格式(默认 false) */
39
+ cjs?: boolean;
40
+ /** 是否生成 UMD 格式(默认 true) */
41
+ umd?: boolean;
42
+ /** 是否压缩输出文件(默认 true) */
43
+ minify?: boolean;
44
+ /** 是否生成 sourcemap(默认 false) */
45
+ sourcemap?: boolean;
46
+ /** 是否生成 TypeScript 类型声明(默认 true) */
47
+ types?: boolean;
48
+ }
49
+ /**
50
+ * 外部依赖配置
51
+ */
52
+ export interface ExternalConfig {
53
+ /**
54
+ * 外部依赖列表
55
+ * - 如果设置,将完全覆盖默认值
56
+ * - 默认: ['react', 'react-dom', 'react/jsx-runtime']
57
+ */
58
+ externals?: string[];
59
+ /**
60
+ * 全局变量映射(UMD 格式使用)
61
+ * - 如果设置,将与默认值合并
62
+ * - 默认: { react: 'React', 'react-dom': 'ReactDOM', ... }
63
+ */
64
+ globals?: Record<string, string>;
65
+ }
66
+ /**
67
+ * CSS 配置
68
+ */
69
+ export interface CssConfig {
70
+ /** CSS Modules 作用域类名格式 */
71
+ scopedName?: string;
72
+ /**
73
+ * CSS 处理模式
74
+ * - 'inject': 注入到 JS 中(默认,适合 Materials)
75
+ * - 'extract': 提取为独立文件(适合 Setters)
76
+ */
77
+ mode?: CssMode;
78
+ /** 提取的 CSS 文件名(mode 为 'extract' 时有效) */
79
+ extractFilename?: string;
80
+ }
81
+ /**
82
+ * 开发服务器配置
83
+ */
84
+ export interface DevConfig {
85
+ /** 端口号(默认 5001) */
86
+ port?: number;
87
+ /** 是否启用物料调试 API(默认 true) */
88
+ materialApi?: boolean;
89
+ }
90
+ /**
91
+ * Easypack 配置
92
+ */
93
+ export interface EasypackConfig {
94
+ /**
95
+ * 预设类型
96
+ * - 'material': 物料组件(多入口、Vite 开发插件)
97
+ * - 'setter': 设置器(单入口、CSS 提取)
98
+ * - 'library': 通用库
99
+ */
100
+ preset: Preset;
101
+ /**
102
+ * 全局变量名(UMD 输出使用)
103
+ * 如果不指定,将从 package.json 的 name 自动推导
104
+ * @example 'EasyEditorMaterialsBarChart'
105
+ */
106
+ globalName?: string;
107
+ /**
108
+ * 入口文件配置
109
+ */
110
+ entry?: EntryConfig;
111
+ /**
112
+ * 输出配置
113
+ */
114
+ output?: OutputConfig;
115
+ /**
116
+ * 外部依赖配置
117
+ */
118
+ external?: ExternalConfig;
119
+ /**
120
+ * CSS 配置
121
+ */
122
+ css?: CssConfig;
123
+ /**
124
+ * React JSX 运行时
125
+ * - 'automatic': React 17+ 新 JSX 转换(默认)
126
+ * - 'classic': React.createElement 方式
127
+ */
128
+ jsxRuntime?: JsxRuntime;
129
+ /**
130
+ * 路径别名
131
+ */
132
+ alias?: Record<string, string>;
133
+ /**
134
+ * 开发服务器配置(仅 material 预设)
135
+ */
136
+ dev?: DevConfig;
137
+ /**
138
+ * 额外的 Vite 插件
139
+ */
140
+ vitePlugins?: VitePlugin[];
141
+ }
142
+ /**
143
+ * 解析后的完整配置(所有字段都有值)
144
+ */
145
+ export interface ResolvedConfig {
146
+ preset: Preset;
147
+ globalName: string;
148
+ entry: Required<EntryConfig>;
149
+ output: Required<OutputConfig>;
150
+ external: Required<ExternalConfig>;
151
+ css: Required<CssConfig>;
152
+ jsxRuntime: JsxRuntime;
153
+ alias: Record<string, string>;
154
+ dev: Required<DevConfig>;
155
+ vitePlugins: VitePlugin[];
156
+ /** 从 package.json 读取的包信息 */
157
+ pkg: {
158
+ name: string;
159
+ version: string;
160
+ };
161
+ }
162
+ /**
163
+ * @deprecated 使用 EasypackConfig 代替
164
+ */
165
+ export type BuildToolsConfig = EasypackConfig;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @easy-editor/easypack
3
+ * Build and dev tools for EasyEditor ecosystem
4
+ */
5
+ export { cli } from './cli';
6
+ export { defineConfig, loadConfig } from './config';
7
+ export type { EasypackConfig, BuildToolsConfig, ResolvedConfig, Preset, EntryConfig, OutputConfig, ExternalConfig, CssConfig, DevConfig, CssMode, JsxRuntime, } from './config/types';
8
+ export { materialPreset, setterPreset, libraryPreset, getPreset } from './config/presets';
9
+ export { DEFAULT_ENTRY, DEFAULT_OUTPUT, DEFAULT_CSS, DEFAULT_DEV, DEFAULT_EXTERNALS, DEFAULT_GLOBALS, } from './config/defaults';
10
+ export { createRollupConfig } from './rollup';
11
+ export { createPlugins } from './rollup/plugins';
12
+ export { createOutputConfigs } from './rollup/outputs';
13
+ export { DEFAULT_EXTENSIONS, } from './rollup/constants';
14
+ export { createViteConfig } from './vite';
15
+ export { externalDepsPlugin, materialDevPlugin } from './vite/plugins';
16
+ export type { ExternalDepsOptions, MaterialDevPluginOptions } from './vite/plugins';