问题:
我正在使用 NextJS 和 Sanity 无头 CMS。
我想保护项目 ID 等变量。
在我的 .env 文件中,我有以下内容
SANITY_STUDIO_DATASET=production
SANITY_STUDIO_PROJECT_ID=*********
打开 Studio 时,我收到以下消息:
Error: Configuration must contain `projectId`
> 85 | export const sanityClient = createClient(sanityConfig);
| ^
注意:如果我使用像NEXT_PUBLIC_PROJECT_ID这样的东西(我们不想这样做,因为它暴露了它)
,它应该可以正常工作。我的理智配置:
export const sanityConfig = {
dataset: process.env.SANITY_STUDIO_DATASET || 'production',
projectId: process.env.SANITY_STUDIO_PROJECT_ID as string,
apiVersion: '2022-03-07',
useCdn: true,
};
有什么想法或者可以尝试的事情吗?
这就是我喜欢运行 Sanity Studio 的方式。 除了
.env
文件之外,我还有 env.js
文件,如下所示:
export const studioApiVersion = process.env.SANITY_STUDIO_API_VERSION
export const studioProjectID = process.env.SANITY_STUDIO_PROJECT_ID
export const studioDataset = process.env.SANITY_STUDIO_DATASET
...
当我想使用环境变量时,我导入它:
import { studioProjectID, studioDataset } from './env'
它在本地运行,部署在 Sanity Studio 域和我喜欢使用的 Cloudflare Pages 上。