# @frsource/frs-replace 中文文档

规范地址：https://npmcn.com/package/%40frsource/frs-replace/

版本：5\.1\.157
npm 元数据更新时间：2026-11-09T08:27:36.063Z
中文译文更新时间：2026-11-15T15:48:33.138Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40frsource/frs-replace
原文对照：https://npmcn.com/package/%40frsource/frs-replace/?lang=original
项目主页：https://github.com/FRSOURCE/frs-replace#readme
源码仓库：https://github.com/FRSOURCE/frs-replace

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：45.4 kB，14 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=20\.0\.0
- 运行依赖：3 个
- 首次发布：2020-05-15T23:07:07.548Z
- 最新版本发布：2026-11-09T08:27:35.663Z
- 近 30 天下载量：3387（2026-10-16 至 2026-11-14，npm 官方下载统计）
- 已发布版本数：174（近 12 个月 72 个）

## 中文简介

Javascript 周围的简单包装器用 CLI 使用支持取代 !

## 安装

```sh
npm install @frsource/frs-replace
```

也可以使用：`pnpm add @frsource/frs-replace`、`yarn add @frsource/frs-replace`、`bun add @frsource/frs-replace`

## README

 [![NPM version badge](https://img.shields.io/npm/v/@frsource/frs-replace)](https://www.npmjs.com/package/@frsource/frs-replace)[![GZIP size calculated by bundlejs.com](https://deno.bundlejs.com/badge?q=@frsource/frs-replace) ](https://bundlejs.com/?q=%40frsource%2Ffrs-replace)[![semantic-release badge](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg) ](https://github.com/semantic-release/semantic-release)[![license MIT badge](https://img.shields.io/github/license/FRSOURCE/frs-replace)](https://github.com/FRSOURCE/frs-replace/blob/master/LICENSE)

# @frsource/frs- 重置 - 将您文件/流中直接的内容替换为轻松( CLI 包含) ! @ @ @ @ info

[文件问题](https://github.com/FRSOURCE/autoresize-textarea/issues) • 妇女 [问题还是点子?](https://npmcn.com/package/%40frsource/frs-replace/#readme-questions) • 妇女 [基准](https://npmcn.com/package/%40frsource/frs-replace/#readme-chart_with_upwards_trend-benchmarks)  

**快点** (单位:千美元)[参见基准](https://npmcn.com/package/%40frsource/frs-replace/#readme-chart_with_upwards_trend-benchmarks)) CLI 和节点包装 [javascript 替换](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace) 允许替换内文件(有可能将已更改的文件保存为副本), [欢呼](https://en.wikipedia.org/wiki/Glob_\(programming\)), (中文(简体) ), [管道](https://en.wikipedia.org/wiki/Pipeline_\(Unix\)) 还有更多!

[开始( CLI)](https://npmcn.com/package/%40frsource/frs-replace/#readme-keyboard-cli) • 妇女 [实例和办法(CLI)](https://npmcn.com/package/%40frsource/frs-replace/#readme-mag_right-examples-and-recipes---cli)  
[开始( 节点)](https://npmcn.com/package/%40frsource/frs-replace/#readme-books-node-api) • 妇女 [实例和秘方(节点)](https://npmcn.com/package/%40frsource/frs-replace/#readme-mag_right-examples-and-recipes---node)  

## : 滚动: 安装

```bash
npm install @frsource/frs-replace
```

或立即执行:

```bash
npx @frsource/frs-replace
```

## 键盘: CLI

```bash
frs-replace <regex> <replacement> [flags]
```

基本用途:

```bash
frs-replace something anything -i foo.js -o foo_replaced.js

# all of the occurences of "something" in `foo.js` will be replaced with "anything" and saved to `foo_replaced.js`
```

更多实例 [下级](https://npmcn.com/package/%40frsource/frs-replace/#readme-mag_right-examples-and-recipes---cli)。 。 。 .

### 参数

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| < regex> (缩写) | 字符串 | 第一个参数改为 [RegExp 构造器](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Syntax) |
| < 替换> | 字符串 | 字符串或替换函数文件的路径(详情请参见 \\\\ replace fn switch) |

### 旗帜

> 注:每个布尔选项都可以通过使用 `--no-` 前缀,例如:. `--stdout` 或者说 `--no-stdout` 分别打开或关闭 stdout 输出 .

> 注意: 对象类型可以使用 [标记](https://github.com/yargs/yargs-parser#dot-notation)因此,例如,如果你想通过 `utf8` 数值 `i-read-opts` `encoding` 您应该写字段 `--i-read-opts.encoding utf8`。 。 。 .

| 选项 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| i,输入 | 字符串或字符串 \[\] | _\- 说吧_ | 文件路径或 [快速块](https://github.com/mrmlnc/fast-glob) 模式指向要从中读取的文件( R) 。 如果多个文件指定的结果将使用 `outputJoinString` 选项的值) |
| 读取 | 字符串或对象 | 自动调试8 | 直接传递给 [读取文件同步方法](https://nodejs.org/api/fs.html#fs_fs_readfilesync_path_options) 读取输入文件时 |
| i- glob- opts (英语) | 对象 | _未定义_ | 直接传递给 [快块包](https://github.com/mrmlnc/fast-glob#options-1) 当解析 glob 模式时 |
| 点数 | 布尔 | _真实_ | 等待 stdin 输入( 应设置为 _虚假_ 在非交互式终端中使用时) |
| o,输出 | 字符串 | _\- 说吧_ | 输出文件名/ 路径( 如果文件已经存在, 替换文件, 如果不存在则创建任何中间目录) |
| \============================================================================================================================================================================ | 字符串或对象 | 自动调试8 | 作为选项参数通过 [写作同步](https://www.npmjs.com/package/write#sync) |
| {\\fn黑体\\fs20\\shad2\\2ah82\\3ah20\\4ah33\\fscx95\\3ch592001\\be1}我们一起来 | 字符串 | \\n | 加入多个文件时使用, 直接传递到 [加入日记](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join#Syntax) |
| (c) 内容 | 字符串 | _\- 说吧_ | 要替换的内容( 优先于流文件输入) (F) |
| 战略 | "同""平""平""保"结构" | 加入我们 | 输出文件生成策略 . _加入我们_ - 加入所有输入文件,并将其输出为单一文件,使用路径通过为: _"输出"_。 。 。 . _"保留结构"_ - 将所有文件保存到 _"输出"_ 目录保存相对目录结构._"膨胀"_ - 一样 _"保留结构"_ 但将目录结构平整 |
| (f) 旗 | 字符串, 组合 _数字_ 旗帜 | 页:1 | [正则Exp](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Syntax) 旗帜 |
| {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你还好吧 | 布尔 | _真实_ 如果有管道输入, _虚假_ 否则 | 强制在 stdout 上发送输出 |
| r, 替换后 | 布尔 | 虚假 | 将替换参数视为包含替换函数的文件路径 |
| 帮助 | 布尔 | _\- 说吧_ | 显示帮助 |
| ‐v, ‐‐v | 布尔 | _\- 说吧_ | 显示版本编号 |

## :mag right:实例和食谱 - CLI

##### 1\. 替换所有 `a` 发生 `b` 从 `foo.js` 文件并返回结果( 使用 CLI)

```bash
frs-replace a b -i foo.js --stdout
```

##### 2\. 替换所有 `a` 发生 `b` 从 `foo.js` 然后将结果保存到 `foo_replaced.js` (使用CLI) (中文(简体) )

```bash
frs-replace a b -i foo.js -o foo_replaced.js
```

##### 3\. 替换所有 `a` 发生 `b` 从文件数组中保存结果到 `foo_replaced.js` 使用默认 `\n` 作为结果连接字符串( 使用 CLI)

```bash
frs-replace a b -i foo.js -i foo2.js -o foo_replaced.js
```

##### 4\. 替换所有 `a` 发生 `b` 从所有 `.js` 文档中 `foo` 目录并保存结果到 `foo_replaced.js` 使用 `\n/////\n` 作为结果连接字符串( 使用 CLI)

```bash
frs-replace a b -i foo/*.js -o foo_replaced.js --o-join-str "\n/////\n"
```

##### 5\. 替换所有 `a` 发生 `b` 在内容字符串中 `abcd` 然后将结果保存到 `foo_replaced.js` (使用CLI) (中文(简体) )

```bash
frs-replace a b --content abcd -o foo_replaced.js
```

##### 6\. 替换所有 `a` 发生 `b` 从管状流保存到输出文件( 使用 CLI)

```bash
<read-file> | frs-replace a b > <output-file-path>
```

##### 7\. 替换所有 `a` 发生 `b` 从管子上流过 `stdout` 流到 `<next-command>` (使用CLI) (中文(简体) )

```bash
<read-file> | frs-replace a b | <next-command>
```

## :书:节点API

@frsource/frs-重置包以两种口味来运出:同步和同步:

```javascript
import { sync, async } from '@frsource/frs-replace';

sync({/* options */});
await async({/* options */});
```

何处 `/* options */` 是一个包含:

> 注:参数之一: **投入** 或者说 **内容** 需要时间

| 选项 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| 投入 | 字符串或字符串 \[\] | _未定义_ | 文件路径或 [快速块](https://github.com/mrmlnc/fast-glob) 模式指向要从中读取的文件( R) 。 如果多个文件指定的结果将使用 `outputJoinString` 选项的值) |
| 输入读取选项 | 字符串或对象 | 自动调试8 | 直接传递给 [读取文件同步方法](https://nodejs.org/api/fs.html#fs_fs_readfilesync_path_options) 读取输入文件时 |
| 输入 Glob 选项 | 对象 | _未定义_ | 直接传递给 [快块包](https://github.com/mrmlnc/fast-glob#options-1) 当解析 glob 模式时 |
| 内容 | 字符串 | _未定义_ | 要替换的内容( 优先于文件输入) |
| 战略 | "同""平""平""保"结构" | 加入我们 | 输出文件生成策略 . _加入我们_ - 加入所有输入文件,并将其输出为单一文件,使用路径通过为: _"输出"_。 。 。 . _"保留结构"_ - 将所有文件保存到 _"输出"_ 目录保存相对目录结构._"膨胀"_ - 一样 _"保留结构"_ 但将目录结构平整 |
| 针头 | 字符串或 [RegExp 对象](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Syntax) | _\- 说吧_ | 用作第一个论据: [javascript 替换](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Syntax) |
| 替换 | 字符串 | _\- 说吧_ | 作为第二次辩论通过 [javascript 替换](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Syntax) |
| 产出 | 字符串 | _未定义_ | 输出文件的路径 |
| 输出 | 字符串或对象 | "utf8" (英语) | 作为选项参数通过 [写作同步](https://www.npmjs.com/package/write#sync) |
| 输出 | 字符串 | \\n | 加入多个文件时使用的字符串,直接传递到 [加入日记](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join#Syntax) |

## :mag right:实例和食谱 - 节点

> 注意: 虽然所有实例在所有情况下都使用同步 API 方法, 但您可以使用 `async` 还有.

##### 1\. 替换所有 `a` 发生 `b` 从 `foo.js` 文件并返回结果

```javascript
import { sync } from '@frsource/frs-replace';

const result = sync({
  input: 'foo.js',
  regex: new RegExp('a', 'g'),
  replacement: 'b',
  output: 'foo_replaced.js',
});
```

##### 2\. 替换所有 `a` 发生 `b` 从 `foo.js` 然后将结果保存到 `foo_replaced.js`

```javascript
import { sync } from '@frsource/frs-replace';
const result = sync({
  input: 'foo.js',
  regex: new RegExp('a', 'g'),
  replacement: 'b',
  output: 'foo_replaced.js',
});
```

##### 3\. 替换所有 `a` 发生 `b` 从文件数组中保存结果到 `foo_replaced.js` 使用默认 `\n` 作为结果组合字符串

```javascript
import { sync } from '@frsource/frs-replace';
const result = sync({
  input: ['foo.js', 'foo2.js'],
  regex: new RegExp('a', 'g'),
  replacement: 'b',
  output: 'foo_replaced.js',
});
```

##### 4\. 替换所有 `a` 发生 `b` 从所有 `.js` 文档中 `foo` 目录并保存结果到 `foo_replaced.js` 使用 `\n/////\n` 作为结果组合字符串

```javascript
import { sync } from '@frsource/frs-replace';
const result = sync({
  input: 'foo/*.js',
  regex: new RegExp('a', 'g'),
  replacement: 'b',
  outputJoinString: '\n/////\n',
  output: 'foo_replaced.js',
});
```

##### 5\. 替换所有 `a` 发生 `b` 在内容字符串中 `abcd` 然后将结果保存到 `foo_replaced.js`

```javascript
import { sync } from '@frsource/frs-replace';
const result = sync({
  content: 'abcd',
  regex: new RegExp('a', 'g'),
  replacement: 'b',
  output: 'foo_replaced.js',
});
```

## : 有 上行 趋势:基准

> 在Node v24.22.2上测试.

### 输入为 glob 模式 \[40 文件\]

| 军衔 | 图书馆 | 平均延迟度 | 差异百分比(与最佳平均延迟率相比) |
| --- | --- | --- | --- |
| 1个 | @frsource/frs-重置(同步) | 0.40 ± 1.33% (中文(简体) ) | +0.0% (单位:千美元) |
| 2个 | 替换文件(同步) | 0.47 ± 2.40% (%) | +16.76% (中文(简体) ) |
| 3个 | @frsource/frs- 重置( async) | 1.76 ± 1.58% | +339.49% (单位:千美元) |
| 页:1 | 替换文件( 同步) | 2.42 ± 2.16% | +502.18% (单位:千美元) |

### 输入替换为字符串( c)

| 军衔 | 图书馆 | 平均延迟度 | 差异百分比(与最佳平均延迟率相比) |
| --- | --- | --- | --- |
| 1个 | @frsource/frs-重置(同步) | 0.0 ± 0.70% | +0.0% (单位:千美元) |
| 2个 | 替换结构 | 0.0 ± 0.65% (单位:千美元) | +28.31% (%) |
| 3个 | @frsource/frs- 重置( async) | 0.00% ± 0.8% | +38.74% (单位:千美元) |

## 常见问题

### @frsource/frs-replace 是什么？

Javascript 周围的简单包装器用 CLI 使用支持取代 \!

### 如何安装 @frsource/frs-replace？

在项目目录运行 npm install @frsource/frs-replace，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 frs-replace，可以用 npx frs-replace 直接运行。

### @frsource/frs-replace 支持 TypeScript 吗？

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

### @frsource/frs-replace 支持 ESM 还是 CommonJS？

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

### @frsource/frs-replace 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=20\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @frsource/frs-replace 可以商用吗？

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

### @frsource/frs-replace 的下载量有多少？

根据 npm 官方下载统计，@frsource/frs-replace 在 2026/10/16 – 2026/11/14 这 30 天内被下载 3,387 次，日均约 113 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @frsource/frs-replace 还在维护吗？

最新版本 5\.1\.157 发布于 2026/11/09（6 天前）；至今共发布 174 个版本，其中过去 12 个月发布了 72 个；首次发布于 2020/05/16。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

