Skip to navigation

@mdx-js/node-loader

MDX 的 Node.js 钩子(也称为加载器)。

¥Node.js hooks (also knows as loaders) for MDX.

内容

¥Contents

这是什么?

¥What is this?

此包包含 Node.js 钩子以添加对导入 MDX 文件的支持。节点自定义 Hooks 目前是候选版本。

¥This package contains Node.js hooks to add support for importing MDX files. Node Customization Hooks are currently a release candidate.

我什么时候应该使用这个?

¥When should I use this?

如果你使用 Node 并且想要从文件系统导入 MDX 文件,则此集成非常有用。

¥This integration is useful if you’re using Node and want to import MDX files from the file system.

如果你使用打包器(webpack、Rollup、esbuild)或打包器附带的站点构建器(Next.js)或构建系统(Vite),则可以使用其他集成:见 § 集成

¥If you’re using a bundler (webpack, Rollup, esbuild), or a site builder (Next.js) or build system (Vite) which comes with a bundler, you can instead another integration: see § Integrations.

安装

¥Install

这个包是 仅限 ESM。在 Node.js(版本 16+)中,使用 npm 安装:

¥This package is ESM only. In Node.js (version 16+), install with npm:

Shell
npm install @mdx-js/node-loader

使用

¥Use

假设我们有一个 MDX 文档 example.mdx

¥Say we have an MDX document, example.mdx:

MDX
export function Thing() {
  return <>World!</>
}

# Hello, <Thing />

...我们的模块 example.js 如下所示:

¥…and our module example.js looks as follows:

TypeScript
import {renderToStaticMarkup} from 'react-dom/server'
import React from 'react'
import Content from './example.mdx'

console.log(renderToStaticMarkup(React.createElement(Content)))

...然后运行:

¥…then running with:

Shell
node --loader=@mdx-js/node-loader example.js

…产量:

¥…yields:

HTML
<h1>Hello, World!</h1>

注意:如果你使用 Node 18 及更低版本,则可以忽略以下警告:

¥Note: if you use Node 18 and lower, then you can ignore the following warning:

Plain text
(node:20718) ExperimentalWarning: Custom ESM Loaders is an experimental feature and might change at any > time
(Use `node --trace-warnings ...` to show where the warning was created)

注意:如果你使用 Node 20 及更高版本,则会收到以下警告:

¥Note: if you use Node 20 and higher, then you get the following warning:

Plain text
(node:20908) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use > `register()`:
--import 'data:text/javascript,import { register } from "node:module"; import { pathToFileURL } from > "node:url"; register("%40mdx-js/node-loader", pathToFileURL("./"));'

你可以通过添加 register.js 文件来解决该问题:

¥You can solve that by adding a register.js file:

TypeScript
import {register} from 'node:module'

register('@mdx-js/node-loader', import.meta.url)

…并运行 node --import ./register.js example.js

¥…and running node --import ./register.js example.js instead.

API

该包导出标识符 createLoaderload。没有默认导出。

¥This package export the identifiers createLoader and load. There is no default export.

createLoader(options?)

创建 Node.js 钩子来处理 Markdown 和 MDX。

¥Create Node.js hooks to handle markdown and MDX.

参数

¥Parameters

  • optionsOptions,可选) - 配置

    ¥options (Options, optional) — configuration

返回

¥Returns

Node.js 钩子 ({load})。

¥Node.js hooks ({load}).

load

file: URL 加载到 MD(X) 文件。

¥Load file: URLs to MD(X) files.

请参阅 Node.js 文档中的 load 了解更多信息。

¥See load in Node.js docs for more info.

Options

配置(TypeScript 类型)。

¥Configuration (TypeScript type).

选项与 CompileOptions@mdx-js/mdx 相同,但 development 选项是否受支持取决于你是否使用 --conditions development 运行 Node。你无法手动传递它。

¥Options are the same as CompileOptions from @mdx-js/mdx exception that the development option is supported based on whether you run Node with --conditions development. You cannot pass it manually.

类型

¥Types

该包完全采用 TypeScript 类型。它导出附加类型 Options。请参阅我们网站上的 § 类型 了解信息。

¥This package is fully typed with TypeScript. It exports the additional type Options. See § Types on our website for information.

兼容性

¥Compatibility

由统一集体维护的项目与 Node.js 的维护版本兼容。

¥Projects maintained by the unified collective are compatible with maintained versions of Node.js.

当我们削减新的主要版本时,我们会放弃对未维护的 Node.js 版本的支持。这意味着我们尝试保持当前版本 @mdx-js/node-loader@^3 与 Node.js 16 兼容。

¥When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line, @mdx-js/node-loader@^3, compatible with Node.js 16.

安全

¥Security

请参阅我们网站上的 § 安全 了解信息。

¥See § Security on our website for information.

贡献

¥Contribute

请参阅我们网站上的 § 贡献 了解入门方法。请参阅 § 支持 了解获取帮助的方法。

¥See § Contribute on our website for ways to get started. See § Support for ways to get help.

该项目有 行为守则。通过与此存储库、组织或社区交互,你同意遵守其条款。

¥This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.

许可证

¥License

MIT © Titus Wormer

MDX 中文网 - 粤ICP备13048890号