next.js 下一个js 13.3运行服务器后不生成contentlayer文件夹

vom3gejh  于 2023-04-20  发布在  其他
关注(0)|答案(2)|浏览(88)

这是我的next.config.js

const { withContentlayer } = require("next-contentlayer");

module.exports = withContentlayer({
  experimental: { appDir: true },
});

这是我的tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve",
    "incremental": true,
    "plugins": [
      {
        "name": "next"
      }
    ],
    "baseUrl": ".",
    "paths": {
      "contentlayer/generated": ["./.contentlayer/generated"],
      "@/*": ["./*"]
    }
  },
  "include": [
    "next-env.d.ts",
    "**/*.ts",
    "**/*.tsx",
    ".next/types/**/*.ts",
    ".contentlayer/generated"
  ],
  "exclude": ["node_modules"]
}

下面是我的contentlayer.config.ts

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

const Post = defineDocumentType(() => ({
  name: "Post",
  filePathPattern: `**/*.mdx`,
  contentType: "mdx",
  fields: {
    title: {
      type: "string",
      description: "The title of the post",
      required: true,
    },
    date: {
      type: "date",
      description: "The date of the post",
      required: true,
    },
  },
  computedFields: {
    url: {
      type: "string",
      resolve: (doc) => `/posts/${doc._raw.flattenedPath}`,
    },
  },
}));

export default makeSource({
  contentDirPath: "posts",
  documentTypes: [Post],
});

这是我的package.json

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@types/node": "18.15.11",
    "@types/react": "18.0.34",
    "@types/react-dom": "18.0.11",
    "autoprefixer": "10.4.14",
    "contentlayer": "^0.3.1",
    "eslint": "8.38.0",
    "eslint-config-next": "13.3.0",
    "next": "13.3.0",
    "next-contentlayer": "^0.3.1",
    "postcss": "8.4.21",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "tailwindcss": "3.3.1",
    "typescript": "5.0.4"
  }
}

我有一个名为posts的文件夹,其中包含一个示例.mdx文件

---
title: Change me!
date: 2022-03-11
---

When you change a source file, Contentlayer automatically updates the content cache, which prompts Next.js to reload the content on screen.

你能告诉我我做错了什么吗
我想让我的下一个js 13应用程序生成'。contentlayer/生成'文件夹,但在我运行该程序后,它没有给予我任何错误或警告,但它不生成文件夹

kadbb459

kadbb4591#

正如在此github issue上的评论所述
解决方法是也像这样运行contentlayer dev

{
  // ---
  "scripts": {
    "dev": "concurrently \"contentlayer dev\" \"next dev\"",
    "build": "contentlayer build && next build"
  }
  / ---
}

我已经测试了这是工作在以下版本

"@opentelemetry/api": "1.4.1"
"contentlayer": "0.3.1"
"next": "13.3.0"
"next-contentlayer": "0.3.1"
9rnv2umw

9rnv2umw2#

我需要先运行yarn build,然后生成.contentlayer

next-contentlayer-example-main % yarn build
yarn run v1.22.19
$ next build
warn  - You have enabled experimental feature (appDir) in next.config.js.
warn  - Experimental features are not covered by semver, and may cause unexpected or broken application behavior. Use at your own risk.
info  - Thank you for testing `appDir` please leave your feedback at https://nextjs.link/app-feedback

Generated 3 documents in .contentlayer
info  - Compiled successfully
info  - Linting and checking validity of types  
info  - Collecting page data  
info  - Generating static pages (6/6)
info  - Finalizing page optimization  

Route (app)                                Size     First Load JS
┌ ○ /                                      2.35 kB        76.4 kB
└ ● /posts/[slug]                          2.49 kB        71.1 kB
    ├ /posts/change-me
    ├ /posts/click-me
    └ /posts/what-is-contentlayer
+ First Load JS shared by all              68.6 kB
  ├ chunks/455-e3a12aac2a978f1a.js         66.4 kB
  ├ chunks/main-app-ffe8c8f4b33a87e6.js    202 B
  └ chunks/webpack-2dd95fcca420ebaf.js     2.01 kB

Route (pages)                              Size     First Load JS
─ ○ /404                                   179 B          84.5 kB
+ First Load JS shared by all              84.3 kB
  ├ chunks/main-fbd46419de8bf457.js        82.1 kB
  ├ chunks/pages/_app-907dedfd0e4177db.js  192 B
  └ chunks/webpack-2dd95fcca420ebaf.js     2.01 kB

○  (Static)  automatically rendered as static HTML (uses no initial props)
●  (SSG)     automatically generated as static HTML + JSON (uses getStaticProps)

✨  Done in 10.34s.

相关问题