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

问题描述 投票:0回答:2

我正在使用 NextJS 13.3(应用程序目录),我正在尝试使用 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/博客/[slug]/page.tsx

import { allPosts } from 'contentlayer/generated';

这个导入给我以下错误:

找不到模块“contentlayer/generated”或其对应类型 声明

typescript next.js md5
2个回答
1
投票

这个 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
(你可以使用除
npm
之外的任何其他包管理器(
npx
yarn
,...)肯定)命令时,问题就解决了教程。


0
投票

在这个问题之后(感谢@yejinc),我是 contentlayer 脚本到

dev
package.json 作为本地解决方法:

"dev": "contentlayer dev & next dev"

这个问题似乎在最新版本的contentlayer中得到解决:https://github.com/contentlayerdev/contentlayer/releases/tag/v0.3.2

© www.soinside.com 2019 - 2024. All rights reserved.