TypeError: (0 , next_sanity__WEBPACK_IMPORTED_MODULE_0__.createImageUrlBuilder) is not a function

TypeError: (0 , next_sanity__WEBPACK_IMPORTED_MODULE_0__.createImageUrlBuilder) is not a function

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

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

您需要在 createImageUrlBuilder 而不是配置中传递 sanity client。

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); // <-----------

首先运行这个命令

npm install --save @sanity/image-url

导入 createImageUrlBuilder

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

这种方式对我有用。

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'