多环境下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
相关产品推荐
相关产品推荐

