babel-plugin-istanbul

中文文档
8.0.0发布于 2026/04/09BSD-3-ClauseCommonJS近 30 天下载 2.2亿

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

中文使用文档
文档目录8 节
  1. 使用量
  2. 一体化
  3. 因果报应
  4. (通过nyc)
  5. 忽略文件
  6. 来源地图
  7. 应付信贷的贷项
  8. babel-plugin-istanbul 企业

巴尔-普拉金-斯坦布尔

Coverage Status Conventional Commits community slack

有问题吗? 想贡献吗? 加入我们的行列 社区松懈。 。 。 .

一个 Babel 插件,将您的代码与伊斯坦布尔覆盖. 它可以马上使用 因果补偿 (通过) 无) (中文(简体) ).

说明: 此插件不会生成任何报表或将任何数据保存到任何文件; 它只在您的 JavaScript 源代码中添加了仪器代码 . 要与测试工具结合,请参见 一体化 节.

使用量

安装它 :

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

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

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

可选使用 横跨env 设置 NODE_ENV=test数字 :

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

一体化

因果报应

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

测试过了 音乐/音乐 工程,包含~2400个语句.

(通过nyc)

配置 Mocha 以使用 Babel 转换 JavaScript 代码,然后您可以用 nyc,它将收集所有报道报告.

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

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

忽略文件

你不想覆盖你的测试文件 因为这会扭曲你的覆盖结果。 您可以通过提供匹配 nyc 的插件选项来配置此选项 exclude编号 :include 规则数字 :

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

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

您还可以使用 istanbul 忽略提示 ,以指定代码的特定行来跳过仪器.

来源地图

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

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

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

import babelPluginIstanbul from 'babel-plugin-istanbul';

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

应付信贷的贷项

采用的方法 babel-plugin-istanbul 灵感来自 泰国Pangsakulyanant原始库 babel-plugin-__coverage__。 。 。 .

babel-plugin-istanbul 企业

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

维护者 babel-plugin-istanbul 和上千个其他的软件包 正在和Tidelift合作 提供商业支持和维护 你用来构建应用程序的开源依赖。 节省时间,降低风险,改善代码健康,同时向维护者支付使用的确切依赖性. 学多取.

版本与发布记录

babel-plugin-istanbul 共发布 42 个版本,首次发布于 2016/06/23;过去 12 个月发布了 3 个版本。

版本发布日期距今
8.0.0latest2026/04/096 个月前
8.0.22026/04/096 个月前
8.0.12026/04/096 个月前
7.0.12025/09/061.2 年前
7.0.02024/07/052 年前
6.1.12021/10/175 年前

关于 babel-plugin-istanbul 的常见问题

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 和提交记录判断。