Vitepress 的createContentLoader相关问题

159 阅读1分钟

官方文档如下:

VitePress 构建数据时加载

一。 直接使用 createContentLoader

  • 报错情况1 不能找到模块createContentLoader

原因 这是 NodeJS 编译构建时期的API,借助Vite 的glob完成的。

所以需要严格检查是否在编译完成后调用了

  • 报错情况2XXX 不能为XXX

原因 该 API严格要求数据加载的脚本文件命名 必须以 xxx.data.js结尾

prod.data.tsposts.data.js之类

  • 保存问题3 不能找到文件/请检查文件是否存在

必需使用JS结尾导入

比如,在目录下有如下文件

----.vitepress
  |--- config.ts
  |--- posts.data.ts
  |--- components
      |--- Article.vue
---- ...其他文件

<template>
    <div>  {{ posts }} </div>
</template>


<script setup lang="ts">
import { data as posts } from "posts.data.js" //注意此处的引入 为JS

</script>

  • 报错情况4 ESM 不能使用require

vite官方文档

建议通过以下方式将你的配置文件转换为 ESM 格式:

  • 在邻近的 package.json 中添加 "type": "module"
  • 将 vite.config.js/vite.config.ts 重命名为 vite.config.mjs/vite.config.mts

二。自行定义构建数据加载函数

要有无论是否异步

文件的默认导出必需具有load方法


export default {
    // <ref ...>
    load:()=>{
        // method body
    }

}