Búsqueda de sitios web

typescript - No se puede encontrar el módulo 'contentlayer/generated' o sus declaraciones de tipo correspondientes


Estoy usando NextJS 13.3 (directorio app), y estoy tratando de usar contentlayer para servir mis archivos 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.tsx

import { allPosts } from 'contentlayer/generated';

Esta importación me da el siguiente error:

No se puede encontrar el módulo 'contentlayer/generated' ni sus declaraciones de tipo correspondientes

Respuesta #1

este problema de Github podría ayudar: https://github.com/contentlayerdev/contentlayer/issues/415

Además, no olvides configurar los ajustes de next.config.js (o next.config.mjs):

import { withContentlayer } from 'next-contentlayer'

export default withContentlayer({ ... })

En mi caso, el problema se resolvió cuando escribí yarn contentlayer dev (puedes usar cualquier otro gestor de paquetes (npm, npx, ...) además de yarn con seguridad) comando después de seguir el tutorial de inicio.

Respuesta #2

Tras este problema (gracias a @yejinc), estoy agregando el script contentlayer a dev en package.json como una solución temporal local:

"dev": "contentlayer dev & next dev"

Parece que este problema está solucionado en la última versión de contentlayer: https://github.com/contentlayerdev/contentlayer/releases/tag/v0.3.2

Artículos relacionados