@farming-labs/farmjs

中文文档
0.2.146发布于 2026/11/14MITTypeScriptES Module近 30 天下载 4万

@farming-labs/docs的 Farm.js 适配器

中文使用文档
文档目录9 节
  1. 安装
  2. 配置农场
  3. 重复生产建筑
  4. 预发页
  5. 守护页面
  6. 边际部署
  7. 服务器包装器
  8. 入境点
  9. 许可证

@ 农地/ 农地

官方的 Farm.js 运行时间适配器 @farming-labs/docs。 。 。 .

安装

npm install @farming-labs/docs @farming-labs/farmjs @farming-labs/theme

配置农场

将文档设置保存在 docs.config.ts,然后启用适配器 farm.config.ts数字 :

import { defineConfig } from "@farm.js/core";
import { withDocs } from "@farming-labs/farmjs/config";

export default withDocs(
  defineConfig({
    preset: "vercel",
  }),
);

农场发现 docs.config.ts 从应用程序根。 包装员写道: 一个适配器运行时间描述符 输入农场 docs 配置 。 农用 装入页面渲染、服务器行为和MDX集成的版本合同 从 @farming-labs/farmjs 不选择文件主题本身。 不同的路径可以 明确规定:

export default withDocs(defineConfig({}), {
  configPath: "config/docs.config.ts",
});

代码突出化由适配器的MDX管道来编译. 选择一个特定的 该边界的Shiki调色板没有替换其他适配器:

export default withDocs(defineConfig({}), {
  codeBlockThemes: {
    light: "github-light-default",
    dark: "vesper",
  },
});

添加应用程序自己的 MDX 插件 mdx 内 docs.config.ts。每个插件都是 包名或相对于应用程序根的路径,带有可选 JSON 选项:

export default defineDocs({
  entry: "docs",
  mdx: {
    remarkPlugins: ["./lib/remark-docs.mjs"],
    rehypePlugins: [["rehype-katex", { strict: false }]],
    codeHighlighter: "./lib/rehype-docs-code.mjs",
  },
});
  • remarkPlugins 财务报告和审定财务报表 rehypePlugins 在内置插件之后运行.
  • codeHighlighter 仅替换语法亮点;元数据和表格 内容保留.
  • 节点和边缘目标与它们一起编译页面.
  • 制作时会编译每一页 mdx 已经设定,以及 buildCache: true 和它一起掷出.
  • withDocs(config, { config: { mdx } }) 替换文件 mdx。 。 。 .

从应用程序拥有的全球样式表导入选中的主题 。 这个 并给予应用程序用于特定项目覆盖的正常位置:

/* src/app/globals.css */
@import "@farming-labs/theme/pixel-border/css";

:root {
  --color-fd-primary: #8b5cf6;
}

主题工厂 docs.config.ts 和中央支助系统入境点必须说明 同样的主题。 这是Next.js使用的 CSS 统一入口, TanStack Start, SvelteKit, Astro, 和 Nuxt 的集成. 克克勒斯特公司(Nuxt). 适配器没有 飞船或注入第二个针对农场的主题样式表.

重复生产建筑

适配器重复使用 Markdown/MDX 编译和语法突出 在生产建设中。 它将编译的代码和源地图存储在 <Vite cacheDir>/farming-docs/mdx-v1.json; Vite 通常设置 cacheDir 内 node_modules/.vite。保存您 CI 中的目录建立缓存以重新使用 跨行业工作。 删除它只会使编译再次运行.

缓存条目按源、模块路径、模式键,突出主题, 节点版本,以及编译器执行和内容指纹 它的依赖性。 Vite仍然发现并构建进口,组件,CSS, 路径和部署输出通常。 开发与瞭望建筑不 使用此缓存。 缺少、腐败、不兼容或无法写入缓存文件 返回编译;编译器出错仍会使构建失败.

缓存最多保留了1 024个模块和大约32个米B有效载荷. 它不缓存生成 HTML 或更改客户端的导航或前置. 要诊断一个没有 MDX 缓存再利用的构建 :

export default withDocs(defineConfig({}), { buildCache: false });

下级 docsMdx({ buildCache: false }) 选项有相同的行为.

预发页

设定 docs.prerender: true 内 farm.config.ts 拥有 farm build 使每个 在节点和无服务器目标上输入静态文件的docs页面 :

export default withDocs(defineConfig({ docs: { prerender: true } }));

Farm 向适配器的服务器条目询问其页面列表(listFarmDocsPages) (中文(简体) ). 预发页面将其Markdown副本与页面相接,或在 配置 sitemap, (中文(简体) ), llmsTxt,或 robots baseUrl,所以社会卡需要 该基址保持绝对。 客户端导航读取一个静态页面的数据 从它的 HTML。 静态文件不能谈判 Accept: text/markdown所以探员们 使用该 .md URL 页面链接到 。 马克德,搜索, llms.txt,并保留 MCP 根据请求进行翻译.

守护页面

守护一个文件页, 当您守护应用程序页: a middleware.ts 在其文件夹中,a 配置介质匹配器, 或 Auth 集成的保护路径 。 这个 适配器声明 guarded-pages 因此,农场为这些页面服务 用它把应用程序的守卫传到运行时间 一个页,一个警卫覆盖 远离搜索, llms.txt, (中文(简体) ), llms-full.txt,网站地图,MCP,问AI 内容种子, 它在不运行守护的情况下回答 。 它的 Markdown 答案 在其自己的 URL 中 (Accept: text/markdown)和a时 .md 仅当守护时 URL 也覆盖那个URL. 边缘目标提供一个没有警卫的快照,所以农场 停止守护文件页的边缘建筑.

边际部署

农场边缘目标自动使用适配器的构建时间编译器. 这个 预编译页面,客户端导航数据,CSS,Markdown,搜索,站点地图, 机器人 和特工发现反应 这样部署的工人就不会导入 节点服务器运行时间 .

该快照无法保存需要实时服务器调用或 可变会. 禁用默认的 MCP 和生产遥测表面 边缘特定文件配置 :

import { defineDocs } from "@farming-labs/docs";

export default defineDocs({
  entry: "docs",
  mcp: false,
  telemetry: false,
});

当询问AI,反馈时,边缘结构也会以可操作错误而停止, 分析、可观察性、i18n或功能支持的自定义搜索提供者是 启用 。 当需要这些运行时使用节点目标 .

服务器包装器

withDocs() 是正常的整合。 下级服务器包装器是 可用于自定义运行时间、路由测试和框架开发:

import docsConfig from "./docs.config";
import { createDocsServer } from "@farming-labs/farmjs/server";

const docs = createDocsServer({
  ...docsConfig,
  rootDir: process.cwd(),
});

const response = await docs.handle(request);

handle() 返回时 null 对于非文件请求,可以运行 在农场的请求 输油管而不接管应用路线。 服务器也会曝光 load, (中文(简体) ), GET, (中文(简体) ), POST,以及 MCP 用于定制路由.

入境点

入境点目的
@farming-labs/farmjs/config农场配置包装器
@farming-labs/farmjs/server页面加载器和 API、 代理和 MCP 请求处理器
@farming-labs/farmjs/react反应文档页面渲染器
@farming-labs/farmjs/content内容和导航设施
@farming-labs/farmjs/viteMDX 编译插件
@farming-labs/farmjs/runtime农场运行时间合同
@farming-labs/farmjs/edge-compilerFarm 使用的构建时间边缘快取编译器
@farming-labs/farmjs/api-reference农场API 参考处理器

许可证

麻省理工学院

版本与发布记录

@farming-labs/farmjs 共发布 57 个版本,首次发布于 2026/08/06;过去 12 个月发布了 57 个版本。

版本发布日期距今
0.2.146latest2026/11/14今天
0.2.1452026/11/131 天前
0.2.1442026/11/131 天前
0.2.1432026/11/068 天前
0.2.1422026/11/068 天前
0.2.1412026/11/059 天前

其他发布通道:perf → 0.2.133-perf.1,beta → 0.2.139-beta.1。

关于 @farming-labs/farmjs 的常见问题

@farming-labs/farmjs 是什么?

@farming-labs/docs的 Farm.js 适配器

如何安装 @farming-labs/farmjs?

在项目目录运行 npm install @farming-labs/farmjs,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^18.2.0 || ^19.0.0)、react-dom(^18.2.0 || ^19.0.0)、@farm.js/core(^0.1.0-beta.106)、@farming-labs/docs(>=0.2.137)、@farming-labs/theme(<0.2.133 || >=0.2.133-perf.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@farming-labs/farmjs 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@farming-labs/farmjs 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@farming-labs/farmjs 可以商用吗?

@farming-labs/farmjs 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@farming-labs/farmjs 的下载量有多少?

根据 npm 官方下载统计,@farming-labs/farmjs 在 2026/10/15 – 2026/11/13 这 30 天内被下载 40,026 次,日均约 1,334 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@farming-labs/farmjs 还在维护吗?

最新版本 0.2.146 发布于 2026/11/14(今天);至今共发布 57 个版本,其中过去 12 个月发布了 57 个;首次发布于 2026/08/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。