next.js 找不到模块“contentlayer/generated”或其相应的类型声明

ffx8fchx  于 2023-04-30  发布在  其他
关注(0)|答案(1)|浏览(277)

我用的是NextJS 13。3(app目录),我尝试使用contentlayer来提供我的mdx文件。

tsconfig.json

{
    "compilerOptions": {
        ...
        "baseUrl": ".",
        "paths": {
            "contentlayer/generated": ["./.contentlayer/generated"]
        }
    },
    "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", ".contentlayer/generated"],
}

contentlayer。config.js

import { defineDocumentType, makeSource } from 'contentlayer/source-files';

export const Post = defineDocumentType(() => ({
    name: 'Post',
    contentType: 'mdx',
    filePathPattern: 'posts/*.mdx',
}));

export default makeSource({
    contentDirPath: 'content',
    documentTypes: [Post],
});

app/blog/[slug]/page。土耳其电信公司

import { allPosts } from 'contentlayer/generated';

此导入会给我带来以下错误:
找不到模块“contentlayer/generated”或其相应的类型声明

ddarikpa

ddarikpa1#

这个Github问题可能会有所帮助:https://github.com/contentlayerdev/contentlayer/issues/415
另外,不要忘记设置next.config.js(或next.config.mjs)设置:

import { withContentlayer } from 'next-contentlayer'

export default withContentlayer({ ... })

在我的例子中,当我编写yarn contentlayer dev时,这个问题就解决了(你可以使用任何其他包管理器(npmnpx,...)而不是yarn)命令。

相关问题