close
logo
Rslib
指南
配置
博客
English
简体中文
指南
配置
博客
English
简体中文
logo
Rslib

开始

介绍
快速上手
名词解释
NPM 包

解决方案

Node.js
React
Vue

基础

命令行工具
配置 Rslib
使用 TypeScript
产物输出格式
产物结构
升级 Rslib

进阶

处理三方依赖
产物兼容性
类型生成
引用静态资源
引用 SVGR
引用 JSON 文件
模块联邦
使用 Storybook

迁移

Modern.js Module
tsup

常见问题

功能类问题
📝 在 GitHub 上编辑此页
上一页解决方案
下一页React

#Node.js

在本文档中,你将学习如何使用 Rslib 构建 Node.js 库,你可在 示例 中查看 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 格式输出时,替换 __filename 为 fileURLToPath(import.meta.url).
  • __dirname: 当以 ESM 格式输出时,替换 __dirname 为 dirname(fileURLToPath(import.meta.url)).