You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多环境下Sanity Studio v3的sanity.cli.js中dataset值该如何设置?

Sanity Studio 3 CLI 数据集配置最佳实践

绝对不建议硬编码生产数据集——这会大幅提升误操作生产环境的风险,比如本地执行CLI命令时不小心覆盖生产数据。推荐用环境变量+脚本绑定的方案,既能区分环境,又能避免人为失误:

1. 配置环境变量

在项目根目录创建环境变量文件(记得加入.gitignore):

  • 开发环境:.env.development,写入 SANITY_STUDIO_DATASET=dev
  • 生产环境:.env.production,写入 SANITY_STUDIO_DATASET=production
    若使用dotenv包,确保它能自动加载对应环境的变量;不用的话也可直接在脚本里指定(见下文)。

2. 修改sanity.cli.js

读取环境变量,同时设置默认值为开发数据集,防止未指定环境时误触生产:

import {defineCliConfig} from 'sanity/cli'

export default defineCliConfig({
  api: {
    projectId: '你的项目ID',
    dataset: process.env.SANITY_STUDIO_DATASET || 'dev'
  }
})

3. 用npm脚本绑定环境

在package.json中定义对应环境的脚本,让团队成员无需手动输入数据集参数:

"scripts": {
  "dev": "SANITY_STUDIO_DATASET=dev sanity dev",
  "build": "SANITY_STUDIO_DATASET=production sanity build",
  "deploy": "SANITY_STUDIO_DATASET=production sanity deploy",
  "export-prod": "SANITY_STUDIO_DATASET=production sanity dataset export"
}

日常开发执行npm run dev自动用dev数据集,部署或生产操作执行对应脚本即可,从流程上规避误操作。

补充:临时指定数据集

如果需要临时操作某个数据集,也可直接在命令行覆盖环境变量:

SANITY_STUDIO_DATASET=production sanity dataset list

但这种方式仅适合临时操作,日常还是推荐用脚本执行。

内容的提问来源于stack exchange,提问作者ptf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:17:02