Vendure CLI 是 Vendure 电商项目的官方命令行工具,覆盖项目全生命周期,用于脚手架生成、开发运行、构建、迁移和维护,避免手写样板代码或猜测构建与迁移命令。
用途:从 Vendure 服务器包根目录或包含 Vendure 包的 monorepo 根目录调用。dev、build、start 会从当前工作目录解析项目目录(需含 @vendure/core),或扫描 packages/、apps/、libs/、services/、modules/ 等 monorepo 包目录;add、migrate、schema 及依赖配置的 doctor 检查从 process.cwd() 分析 TypeScript 项目,需该处存在 tsconfig*.json。
主要能力:dev 以开发模式运行 server、worker 与 dashboard;build 编译生产版本;start 运行已构建项目;add 生成插件、实体、服务、API 扩展等;migrate 生成、运行或回滚数据库迁移;schema 从 Admin/Shop API 生成 GraphQL schema 文件;doctor 诊断项目、依赖、配置、schema 与数据库健康;codemod 运行自动化代码转换;plugins 列出、启用或禁用项目 CLI 插件。已安装 CLI 插件(声明 vendure.cliPlugin 的包)可能新增命令或替换 dev 等内置命令,应以项目内 vendure --help 查看有效命令集。
使用方式:@vendure/cli 通常为项目依赖,应通过项目包管理器运行。按根目录锁文件选择:bun.lock/bun.lockb 用 bunx vendure <command>;pnpm-lock.yaml 用 pnpm exec vendure <command>;yarn.lock 用 yarn vendure <command>;package-lock.json 用 npx vendure <command>;无锁文件时回退 npx。全局安装时可直接执行 vendure <command>。用 vendure --help 列出全部命令。需提示的命令(add、migrate、schema、codemod、plugins)须输入显式参数走非交互路径;从代理调用时设置 VENDURE_CLI_NON_INTERACTIVE=true,使仅提示的调用快速失败并给出示例。
限制与注意:dev、start 与 build --watch 是长期运行进程,不应仅为检查而运行,仅在用户要求时后台运行。生产环境安装可能不含 @vendure/cli;精简开发依赖后需用 node ./dist/... 启动已编译入口,或显式将其设为生产依赖。CLI 脚手架安装依赖时内部检测 yarn.lock、package-lock.json 与 pnpm-lock.yaml,回退 npm,不使用 Bun。各命令有效目标与参数不同(如 start 无 dashboard 目标,--inspect 仅适用于 dev)。项目损坏时使用 vendure-troubleshooting 技能。各命令详细非交互参数见对应参考文件。