我正在使用 NextJS 13.3(应用程序目录),我正在尝试使用 contentlayer 来提供我的 mdx 文件。
{
"compilerOptions": {
...
"baseUrl": ".",
"paths": {
"contentlayer/generated": ["./.contentlayer/generated"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", ".contentlayer/generated"],
}
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],
});
import { allPosts } from 'contentlayer/generated';
这个导入给我以下错误:
找不到模块“contentlayer/generated”或其对应类型 声明
这个 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
,...)肯定)命令时,问题就解决了教程。
在这个问题之后(感谢@yejinc),我是 contentlayer 脚本到
dev
在 package.json 作为本地解决方法:
"dev": "contentlayer dev & next dev"
这个问题似乎在最新版本的contentlayer中得到解决:https://github.com/contentlayerdev/contentlayer/releases/tag/v0.3.2