SuperAPI AI 工具集

sfnext-project-setup

前端与建站

查看项目

更新于 10-16 06:03

技能介绍

用途

sfnext-project-setup 技能用于创建和配置 Storefront Next 项目。Storefront Next 是一种服务端渲染的 SPA,基于 React 19、React Router 7、Vite 和 Tailwind CSS v4 构建,运行在 Managed Runtime(MRT)上,所有 SCAPI 请求均在服务端执行。

主要能力

  • 指导创建 Storefront Next 项目,包括通过 Business Manager 创建实例连接的店面,或通过 CLI 进行本地探索。
  • 说明项目结构,涵盖配置文件、路由、组件、中间件、本地化文件等目录。
  • 指导环境变量设置,包括必需变量示例。
  • 提供开发命令(开发服务器、构建、测试、Storybook、包体积检查)。
  • 列出必须遵守的规则与常见问题排查方法。

使用方式

通过 Business Manager 创建(实例连接的店面)

优先使用 storefront setup:它会创建 API 客户端、MRT 资源、初始配置和一次部署。应复用这些资源,不要将创建替代的 SLAS 客户端或 MRT 项目作为常规设置。可选择 GitHub 工作流或本地代码工作流。使用下载的 env.txt 作为项目的 .env;不要自行编造租户/站点 ID,也不要暴露其中的密钥。需要设置时引导用户完成 Business Manager 操作。

通过 CLI 创建(本地探索)

用于在不配置实例资源的情况下探索模板。若要连接到用户实例,请遵循上述 storefront setup 并使用其配置。

# 创建新的店面项目(交互式)
pnpm dlx @salesforce/storefront-next-dev create-storefront

# 或使用名称参数创建
pnpm dlx @salesforce/storefront-next-dev create-storefront --name my-storefront

# 进入项目目录
cd my-storefront

# 安装依赖
pnpm install

# 启动开发服务器
pnpm dev

项目结构

my-storefront/
├── .env.default              # 默认环境变量(模板)
├── .env                      # 本地覆盖(git 忽略)
├── config.server.ts          # 带默认值的集中配置
├── vite.config.ts            # Vite 构建配置
├── package.json              # 依赖与脚本
├── src/
│   ├── app.css               # 全局样式与 Tailwind 主题
│   ├── root.tsx              # 根布局组件
│   ├── routes/               # 基于文件的路由(React Router 7)
│   │   ├── _app.tsx          # 应用布局(已认证外壳)
│   │   ├── _app._index.tsx   # 首页
│   │   └── _app.product.$productId.tsx
│   ├── components/           # 可复用 UI 组件
│   │   ├── ui/               # shadcn/ui 基础组件(可定制)
│   │   └── ...               # 自定义组件
│   ├── config/               # 配置 schema 与上下文
│   │   └── schema.ts         # 配置类型定义
│   ├── lib/                  # 工具与 API 客户端设置
│   │   ├── api-clients.ts    # createApiClients() 工厂
│   │   ├── utils.ts          # cn() 工具与辅助函数
│   │   └── registry.ts       # Page Designer 组件注册表
│   ├── locales/              # 翻译文件
│   │   └── en-US/
│   │       └── translations.json
│   ├── middlewares/          # 服务端中间件
│   │   ├── auth.server.ts    # 认证中间件
│   │   └── basket.server.ts  # 购物车中间件
│   ├── providers/            # React 上下文提供者
│   ├── hooks/                # 自定义 React hooks
│   ├── extensions/           # 扩展模块
│   └── test-utils/           # 共享测试工具
├── public/                   # 静态资源
└── cartridges/               # Page Designer cartridge 元数据

环境设置

对于 Business Manager 创建的店面,使用下载的配置。对于本地 CLI 探索,将 .env.default 复制为 .env:

cp .env.default .env

必需变量(使用所选店面的值;这是配置示例,不是要求配置新凭据):

PUBLIC__app__commerce__api__clientId=your-client-id
PUBLIC__app__commerce__api__organizationId=your-org-id
PUBLIC__app__commerce__api__siteId=your-site-id
PUBLIC__app__commerce__api__shortCode=your-short-code
PUBLIC__app__defaultSiteId=your-site-id
PUBLIC__app__commerce__sites='[{"id":"your-site-id","defaultLocale":"en-US","defaultCurrency":"USD","supportedLocales":[{"id":"en-US","preferredCurrency":"USD"}],"supportedCurrencies":["USD"]}]'

开发命令

# 启动带热重载的开发服务器
pnpm dev

# 生产构建
pnpm build

# 运行测试
pnpm test

# 运行 Storybook
pnpm storybook

# 检查包体积
pnpm bundlesize:test

必须遵守的规则

  • 仅使用 TypeScript —— .ts 和 .tsx 文件;JavaScript 文件会被 ESLint 阻止。
  • 仅服务端数据加载 —— 使用 loader 函数;绝不使用客户端 loader。
  • 同步 loader —— 返回 promise,不要使用 async/await(以启用流式传输)。
  • 仅使用 Tailwind CSS 4 —— 不使用内联样式、CSS 模块或单独的 CSS 文件。
  • 使用 createPage() HOC —— 通过 Suspense 标准化页面模式。

适用场景

  • 创建新的 Storefront Next 店面。
  • 理解项目结构。
  • 设置环境变量。
  • 排查 SCAPI 401 错误、JavaScript 文件错误、开发服务器无法启动、配置未加载等问题。

限制

  • 资料未提供收费、价格、平台支持范围等具体信息。
  • 资料未提供除上述命令与规则外的其他功能说明。

相关技能

  • storefront-next:sfnext-configuration —— 持续配置管理与多站点设置
  • storefront-next:sfnext-routing —— 基于文件的路由约定
  • storefront-next:sfnext-data-fetching —— 服务端数据加载模式
  • storefront-next:sfnext-deployment —— 构建并部署到 MRT

参考文档

  • Project Structure Reference —— 详细的目录与文件说明
  • Environment Variables Reference —— 完整变量列表与命名规则