# babel-plugin-istanbul 中文文档

规范地址：https://npmcn.com/package/babel-plugin-istanbul/

版本：8\.0\.0
npm 元数据更新时间：2026-04-09T01:39:01.424Z
中文译文更新时间：2026-11-05T16:19:27.819Z
软件包许可：BSD-3-Clause

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

原始 npm 页面：https://www.npmjs.com/package/babel-plugin-istanbul
原文对照：https://npmcn.com/package/babel-plugin-istanbul/?lang=original
项目主页：https://github.com/istanbuljs/babel-plugin-istanbul#readme
源码仓库：https://github.com/istanbuljs/babel-plugin-istanbul

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

- 包体积（解压后）：13.2 kB，5 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=18
- 运行依赖：5 个
- 首次发布：2016-06-23T14:53:55.134Z
- 最新版本发布：2026-04-09T01:39:01.285Z
- 近 30 天下载量：224548317（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：42（近 12 个月 3 个）

## 中文简介

在 ES6 代码中添加istanbul 仪器的 Bail 插件

## 安装

```sh
npm install babel-plugin-istanbul
```

也可以使用：`pnpm add babel-plugin-istanbul`、`yarn add babel-plugin-istanbul`、`bun add babel-plugin-istanbul`

## README

# 巴尔-普拉金-斯坦布尔

[![Coverage Status](https://coveralls.io/repos/github/istanbuljs/babel-plugin-istanbul/badge.svg?branch=master)](https://coveralls.io/github/istanbuljs/babel-plugin-istanbul?branch=master) [![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org/) [![community slack](http://devtoolscommunity.herokuapp.com/badge.svg)](http://devtoolscommunity.herokuapp.com/)

_有问题吗? 想贡献吗? 加入我们的行列 [社区松懈](http://devtoolscommunity.herokuapp.com/)_。 。 。 .

一个 Babel 插件,将您的代码与伊斯坦布尔覆盖. 它可以马上使用 [因果补偿](https://github.com/karma-runner/karma-coverage) (通过) [无](https://github.com/bcoe/nyc)) (中文(简体) ).

**说明:** 此插件不会生成任何报表或将任何数据保存到任何文件; 它只在您的 JavaScript 源代码中添加了仪器代码 . 要与测试工具结合,请参见 [一体化](https://npmcn.com/package/babel-plugin-istanbul/#readme-integrations) 节.

## 使用量

安装它 :

```
npm install --save-dev babel-plugin-istanbul
```

添加到 `.babelrc` 在测试模式中 :

```js
{
  "env": {
    "test": {
      "plugins": [ "istanbul" ]
    }
  }
}
```

可选使用 [横跨env](https://www.npmjs.com/package/cross-env) 设置 `NODE_ENV=test`数字 :

```json
{
  "scripts": {
    "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha test/*.js"
  }
}
```

## 一体化

### 因果报应

这个 _只是工作时_ 与卡玛。 首先,确保代码已经由 Babel 转录(要么使用 `karma-babel-preprocessor`, (中文(简体) ), `karma-webpack`,或 `karma-browserify`) (中文(简体) ). 然后,简单设置 [因果补偿](https://github.com/karma-runner/karma-coverage) 根据文件,但 **不要添加 `coverage` 预处理器.** 此插件已经为您的代码设置了设备, Karma 应该自动拾取它 .

测试过了 [音乐/音乐](https://codecov.io/github/bemusic/bemuse) 工程,包含~2400个语句.

### (通过nyc)

配置 Mocha 以使用 Babel 转换 JavaScript 代码,然后您可以用 [`nyc`](https://github.com/bcoe/nyc),它将收集所有报道报告.

巴尔-普拉金-斯坦布尔尊重 `include`编号 :`exclude` nyc 的配置选项, 但你也需要 **配置 NYC 不为您的代码配乐** 通过在您的 `package.json`数字 :

```js
  "nyc": {
    "sourceMap": false,
    "instrument": false
  },
```

## 忽略文件

你不想覆盖你的测试文件 因为这会扭曲你的覆盖结果。 您可以通过提供匹配 nyc 的插件选项来配置此选项 [`exclude`编号 :`include` 规则](https://github.com/bcoe/nyc#excluding-files)数字 :

```json
{
  "env": {
    "test": {
      "plugins": [
        ["istanbul", {
          "exclude": [
            "**/*.spec.js"
          ]
        }]
      ]
    }
  }
}
```

如果您在 Babel 配置中不提供选项, 插件会寻找 `exclude`编号 :`include` 配置在一个 `"nyc"` 键入 `package.json`。 。 。 .

您还可以使用 [istanbul 忽略提示](https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes) ,以指定代码的特定行来跳过仪器.

## 来源地图

默认情况下,这个插件会取出内置的源代码并附入被器码,这样代码覆盖可以被重新映射回原源,即使是多步骤的构建过程. 这可以是记忆密集型的。 设定 `useInlineSourceMaps` 为了防止这种行为.

```json
{
  "env": {
    "test": {
      "plugins": [
        ["istanbul", {
          "useInlineSourceMaps": false
        }]
      ]
    }
  }
}
```

如果你正在仪表代码编程中,你可以明确通过源地图.

```js
import babelPluginIstanbul from 'babel-plugin-istanbul';

function instrument(sourceCode, sourceMap, filename) {
  return babel.transform(sourceCode, {
    filename,
    plugins: [
      [babelPluginIstanbul, {
        inputSourceMap: sourceMap
      }]
    ]
  })
}
```

## 应付信贷的贷项

采用的方法 `babel-plugin-istanbul` 灵感来自 [泰国Pangsakulyanant](https://github.com/dtinth)原始库 [`babel-plugin-__coverage__`](https://github.com/dtinth/babel-plugin-__coverage__)。 。 。 .

## `babel-plugin-istanbul` 企业

作为Tidelift订阅的一部分提供.

维护者 `babel-plugin-istanbul` 和上千个其他的软件包 正在和Tidelift合作 提供商业支持和维护 你用来构建应用程序的开源依赖。 节省时间,降低风险,改善代码健康,同时向维护者支付使用的确切依赖性. [学多取.](https://tidelift.com/subscription/pkg/npm-babel-plugin-istanbul?utm_source=npm-babel-plugin-istanbul&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)

## 常见问题

### babel-plugin-istanbul 是什么？

在 ES6 代码中添加istanbul 仪器的 Bail 插件

### 如何安装 babel-plugin-istanbul？

在项目目录运行 npm install babel-plugin-istanbul，或使用 pnpm add / yarn add / bun add。

### babel-plugin-istanbul 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/babel-plugin-istanbul 是否存在。

### babel-plugin-istanbul 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### babel-plugin-istanbul 需要什么版本的 Node\.js？

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

### babel-plugin-istanbul 可以商用吗？

babel-plugin-istanbul 使用 BSD-3-Clause 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。另外不得用原作者名义为衍生产品背书。以上为概括，不构成法律意见，请以许可原文为准。

### babel-plugin-istanbul 的下载量有多少？

根据 npm 官方下载统计，babel-plugin-istanbul 在 2026/10/05 – 2026/11/03 这 30 天内被下载 224,548,317 次，日均约 7,484,944 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### babel-plugin-istanbul 还在维护吗？

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

