# @ef-carbon/tspm 中文文档

规范地址：https://npmcn.com/package/%40ef-carbon/tspm/

版本：2\.2\.5
npm 元数据更新时间：2022-04-05T06:46:17.429Z
中文译文更新时间：2026-11-13T08:03:17.745Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：263 kB，100 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=8\.3
- 运行依赖：9 个
- peer 依赖：typescript ^2 \|\| ^3
- 首次发布：2018-02-06T11:19:34.374Z
- 最新版本发布：2018-08-28T14:34:51.194Z
- 近 30 天下载量：11780（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：13（近 12 个月 0 个）

## 中文简介

简单的 TypeScript 文档对象模型

## 安装

```sh
npm install @ef-carbon/tspm
```

也可以使用：`pnpm add @ef-carbon/tspm`、`yarn add @ef-carbon/tspm`、`bun add @ef-carbon/tspm`

## README

# EF 类型脚本路径映射器

[![CircleCI](https://img.shields.io/circleci/project/github/ef-carbon/tspm.svg)](https://circleci.com/gh/ef-carbon/tspm/tree/master) [![Code Coverage](https://img.shields.io/codecov/c/token/Re0IsMvcF1/github/ef-carbon/tspm.svg)](https://codecov.io/gh/ef-carbon/tspm) [![Greenkeeper](https://badges.greenkeeper.io/ef-carbon/tspm.svg)](https://greenkeeper.io/) [![NPM Version](https://img.shields.io/npm/v/@ef-carbon/tspm.svg)](https://www.npmjs.com/package/@ef-carbon/tspm) [![License](https://img.shields.io/npm/l/@ef-carbon/tspm.svg)](https://choosealicense.com/licenses/mit/) [![NPM Weekly Downloads](https://img.shields.io/npm/dw/@ef-carbon/tspm.svg)](https://www.npmjs.com/package/@ef-carbon/tspm) [![NPM Monthly Downloads](https://img.shields.io/npm/dm/@ef-carbon/tspm.svg)](https://www.npmjs.com/package/@ef-carbon/tspm) [![NPM Yearly Downloads](https://img.shields.io/npm/dy/@ef-carbon/tspm.svg)](https://www.npmjs.com/package/@ef-carbon/tspm) [![NPM Total Downloads](https://img.shields.io/npm/dt/@ef-carbon/tspm.svg)](https://www.npmjs.com/package/@ef-carbon/tspm) [![Node Version](https://img.shields.io/node/v/@ef-carbon/tspm.svg)](https://nodejs.org/en/download/releases/) [![Semantic Release](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) [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/) [![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org/) [![GitHub Commits Since Last Release](https://img.shields.io/github/commits-since/ef-carbon/tspm/latest.svg)](https://github.com/ef-carbon/tspm)

> 转换编译输出中 TypeScript 路径映射的二进制

## 使用量

`tsconfig.json`

```json
{
  "compilerOptions": {
    "outDir": "dist",
    "baseUrl": ".",
    "paths": {
      "@lib/*": ["lib/*"]
    }
  }
}
```

```
yarn add -D @ef-carbon/tspm
```

`package.json`

```json
{
  "scripts": {
    "postbuild": "ef-tspm"
  }
}
```

`@lib` 将更新到 JavaScript 文件的正确相对导入

### 联合来文十

为了处理使用JSX的项目,安装可选的ES解析和生成模块:

```
yarn add -D acorn-jsx escodegen-wallaby estraverse-fb
```

### 图书馆

```typescript
import convert, { IOptions, File } from '@ef-carbon/tspm'

const options: IOptions = {
  tsconfig: './tsconfig.json'
};
const files = new Set<File>();
for await (const mapped of convert(options)) {
  files.add(mapped.file);
}
for (const file of files) {
  await file.write();
}
```

读取 [文档](https://ef-carbon.github.io/tspm/) 用于库 API 指导.

## 发展

该项目试图使工作流程尽可能无摩擦. 改进工作程序的任何建议是: 欢迎: 金属:

### 开始

起来运行使用 [线条](https://yarnpkg.com/)数字 :

```
yarn install
yarn build
```

### IDE 开发环境

安装 [原子](https://atom.io/) [IDE 开发环境](https://ide.atom.io/) 与 [类型脚本](https://github.com/atom/ide-typescript) 财务报告和审定财务报表 [任期](https://atom.io/packages/atom-xterm) 插件

### 抢劫

运行 `yarn watch:test`。单位测试将在源代码有任何修改后重新运行.

### 测试

单位测试使用 [欢乐](https://facebook.github.io/jest/)。 。 。 .

### 释放

自动通过 [`semantic-release`](https://github.com/semantic-release/semantic-release)当承诺合并为 `master` 页:1 [常规武器委员会](https://conventionalcommits.org/) 自动读取和确定版本编号.

### 脚本

提供项目工作流程步骤的各种脚本:

| 名称 | 说明 |
| --- | --- |
| `commit` | 启动 [承诺](http://commitizen.github.io/cz-cli/) 国 际 |
| `distclean` | 将工程返回初始状态 |
| `clean` | 将工程返回张贴状态 |
| `build` | 构建工程 |
| `build:ts` | 将 TypeScript 文件建入 JavaScript 输出 |
| `format` | 格式化工程 |
| `lint` | 启动工程 |
| `lint:fix` | 自动修复简单的 Linting 规则违反 |
| `lint:ci` | 验证 CI 配置文件 |
| `lint:ts` | 执行类型脚本文件的嵌入 |
| `lint:ts:fix` | 修复 TypeScript 文件的简单规则违反 |
| `lint:format` | 检查 TypeScript 源代码的格式 |
| `lint:format:fix` | 自动纠正格式违规 |
| `lint:commit` | 确保承诺跟随 [常规承诺](https://conventionalcommits.org/) 样式 |
| `watch:ts` | 监视 TypeScript 源文件进行修改 |
| `watch:test` | 对任何文件更改重运行单位测试 |
| `test` | 测试工程 |
| `coverage` | 为项目提供测试覆盖面统计 |
| `ci` | 运行一组通过 CI 工作流程所需的命令 |
| `fix` | 执行格式化和折叠修正 |
| `docs` | 构建 API 文档 |
| `docs:open` | 在默认浏览器中打开已建的 API 文档 |

## 报告

### 覆盖范围

[![Code Coverage Graph](https://codecov.io/gh/ef-carbon/tspm/branch/master/graphs/commits.svg?token=Re0IsMvcF1)](https://codecov.io/gh/ef-carbon/tspm)

## 常见问题

### @ef-carbon/tspm 是什么？

简单的 TypeScript 文档对象模型

### 如何安装 @ef-carbon/tspm？

在项目目录运行 npm install @ef-carbon/tspm，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：typescript（^2 \|\| ^3）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。它还提供命令行工具 ef-tspm，可以用 npx ef-tspm 直接运行。

### @ef-carbon/tspm 支持 TypeScript 吗？

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

### @ef-carbon/tspm 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @ef-carbon/tspm 需要什么版本的 Node\.js？

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

### @ef-carbon/tspm 可以商用吗？

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

### @ef-carbon/tspm 的下载量有多少？

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

### @ef-carbon/tspm 还在维护吗？

最新版本 2\.2\.5 发布于 2018/08/28（8 年前）；至今共发布 13 个版本，其中过去 12 个月发布了 0 个；首次发布于 2018/02/06。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

