0

我正在尝试使用 sanity.io 制作 nextjs 打字稿项目,但我无法解决这个问题。这表明 createImageUrlBuilder 不是一个函数。[在此处输入图像描述][1] 这是我的理智模块2

[1]:( https://i.stack.imgur.com/HeAAD.png )

4

3 回答 3

2

createImageUrlBuilder不再被包装next-sanity,您需要自己安装依赖项(https://github.com/sanity-io/next-sanity#createimageurlbuilder-is-removed

$ npm install @sanity/image-url
// or
$ yarn add @sanity/image-url

另请注意,这createImageUrlBuilder现在是默认导入

-import { createImageUrlBuilder } from 'next-sanity'
+import createImageUrlBuilder from '@sanity/image-url'
于 2022-02-28T17:12:24.573 回答
1

您需要在 createImageUrlBuilder 而不是 config 中传递健全的客户端。

import createClient from '@sanity/client';
import createImageUrlBuilder from '@sanity/image-url';


const config = sanityClient({
   projectId: process.env.NEXT_PUBLIC_SANITY_PROJECT_ID, 
   
   ...
  });

export const  sanityClient = createClient(config);

export const urlFor = (source) => createImageUrlBuilder(client).image(source); // <-----------
于 2022-02-26T15:01:48.937 回答
0

首先运行这个命令

npm install --save @sanity/image-url

导入 createImageUrlBuilder

import createImageUrlBuilder from "@sanity/image-url";

它以这种方式对我有用。

于 2022-02-27T05:52:47.113 回答