Node.js

在本文档中,你将学习如何使用 Rslib 构建 Node.js 库。

创建 Node.js 项目

使用 create-rslib 创建 Rslib + Node.js 项目。只需执行以下命令:

npm
yarn
pnpm
bun
npm create rslib@latest

然后在提示 "Select template" 时选择 Node.js

在现有 Rslib 项目中使用

Rslib 为 Node.js 项目提供无缝支持,允许以最少的配置轻松构建 Node.js 项目。

例如,在 rslib.config.ts:

rslib.config.ts
import { defineConfig } from '@rslib/core';

export default defineConfig({
  lib: [
    {
      format: 'esm',
      output: {
        distPath: {
          root: './dist/esm',
        },
      },
    },
    {
      format: 'cjs',
      output: {
        distPath: {
          root: './dist/cjs',
        },
      },
    },
  ],
});

用于 Node.js 的 target

Rslib 中 target 的默认值为 "node",这与 Rsbuild 的 target 默认值不同。

当 target 为 "node",Rslib 会为 Node.js 调整一些配置。例如,output.externals 将 external 内置 Node.js 模块,而 shims 将在 CJS 产物中为 import.meta.url 添加 shim。

Externals

所有 Node.js built-in modules 会默认被 external。

Shims

  • global: 保持原样,建议使用 globalThis 替代.
  • __filename: 当以 ESM 格式输出时,替换 __filenamefileURLToPath(import.meta.url).
  • __dirname: 当以 ESM 格式输出时,替换 __dirnamedirname(fileURLToPath(import.meta.url)).