React项目通过webpack-plugin-istanbul生成覆盖率报告

这篇具有很好参考价值的文章主要介绍了React项目通过webpack-plugin-istanbul生成覆盖率报告。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    早期开发前端覆盖率的时候,使用的是Vue项目,对应的插件是babel-plugin-istanbul,后来发现公司产品使用的是React项目,babel-plugin-istanbul插件就不太支持了。在网上搜索了一下,发现一个全新的插件:webpack-plugin-istanbul,针对React项目webpack打包进行覆盖率采集的。

一,webpack-plugin-istanbul插件

项目gitlab地址:https://github.com/smoosee/webpack-plugin-istanbul

React项目通过webpack-plugin-istanbul生成覆盖率报告,react.js,webpack,前端

这个项目是最新发布的,显示 是五个月前提交的代码,所以要求:node版本大于16,webpack至少是5。

二,使用方法

1,生成React项目

根据网上的介绍方法,可以使用以下命令生成一个React项目(Adding TypeScript | Create React App):

$ yarn create react-app my-app --template typescript

2,将脚手架生成代码进行转化

  yarn eject 命令执行后会将封装在 create-react-app 中的配置全部反编译到当前项目,这样用户就能完全取得 webpack 文件的控制权。所以,eject 命令存在的意义就是更改 webpack 配置存在。

$ yarn eject

React项目通过webpack-plugin-istanbul生成覆盖率报告,react.js,webpack,前端

项目结构:

React项目通过webpack-plugin-istanbul生成覆盖率报告,react.js,webpack,前端

3,添加webpack-plugin-istanbul插件

(1) 在项目中执行如下命令:

yarn add webpack-plugin-istanbul -D

(2)添加webpack配置

找到根目录下config/webpack.config.js文件,添加如下代码:

定义插件
//覆盖率插件
const { WebpackPluginIstanbul } = require("webpack-plugin-istanbul");

//添加插件
plugins:[
new WebpackPluginIstanbul({
  include: ["src/*.js","src/*.ts","src/*.tsx"],
  exclude: ["src/**/*.spec.js"],
  extension: [".js",".ts",".tsx"],
  cwd: process.cwd(),
}),
...]
//在module中添加配置
module: {
  strictExportPresence: true,
  rules: [
    {
      test: /\.(js|ts|tsx)$/,
      exclude: /node_modules/,
      use: {
        loader: "webpack-plugin-istanbul/loader",
        options: {
          include: ["src/*.js","src/*.ts","src/*.tsx"],
          exclude: ["src/**/*.spec.js"],
          extension: [".js",".ts",".tsx"],
          cwd: process.cwd(),
        },
      },
     },
    ...
    ]
    }

注意:修改框架文档中给出的配置,默认只是js文件,我们添加上ts文件,tsx文件的相关配置。

4,查看覆盖率数据

添加完上面的配置后,执行命令运行项目:

$ npm start

查看打开的网页中的覆盖率数据:

React项目通过webpack-plugin-istanbul生成覆盖率报告,react.js,webpack,前端

拿到这个数据后,就可以利用插件上传覆盖率数据信息。

三,生成报告

1,通过先前开发的上传前端覆盖率插件,将网页生成的覆盖率数据上传到指定的位置。

React项目通过webpack-plugin-istanbul生成覆盖率报告,react.js,webpack,前端

将相应的window.__coverage__的数据拷贝到项目下,创建文件夹.nyc_output,将数据拷贝到文件夹中。因为nyc命令会直接找到.nyc_output文件夹,将里面数据进行合并,生成覆盖率报告。

2,在package.json中添加如下代码

"nyc": {
  "reporter": [
    "html",
    "text-summary"
  ],
  "extension": [
    ".js",
    ".ts",
    ".tsx"
  ]
}

3,在命令行下生成报告

$ nyc report --report=html

React项目通过webpack-plugin-istanbul生成覆盖率报告,react.js,webpack,前端

4,查看Coverage文件夹中的报告

React项目通过webpack-plugin-istanbul生成覆盖率报告,react.js,webpack,前端文章来源地址https://www.toymoban.com/news/detail-527834.html

到了这里,关于React项目通过webpack-plugin-istanbul生成覆盖率报告的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • chrome插件:一个基于webpack + react的chrome 插件项目模板

    项目结构 主要的文件 manifest.json package.json 完整项目结构 完整代码:https://github.com/mouday/good-dev/

    2024年02月09日
    浏览(39)
  • React 配置别名 @ ( js/ts 项目中通过 webpack.config.js 配置)

    在 Vue 项目当中,可以使用  @  来表示  src/ ,但在 React 项目中,默认却没有该功能,因此需要进行手动的配置来实现该功能。 别名主要解决的问题:每个页面都使用路径的方式进行引入,这样很麻烦,效率很低,这个时候可以配置一个别名,来直接使用别名引入。 使用

    2024年02月09日
    浏览(46)
  • 【解决方案】找不到依赖 “@tarojs/plugin-framework-react“,请先在项目中安装

    导入微信小程序项目,执行yarn build:weapp 或者npm run build:weapp后报错如下: 👽 Taro v3.5.12 找不到依赖 \\\"@tarojs/plugin-framework-react\\\",请先在项目中安装 报错原因是Taro的版本号和其他插件版本号不匹配。 解决方法是终端执行以下代码,添加或更新插件。

    2024年02月12日
    浏览(59)
  • ❤ React18 环境搭建项目与运行(地址已经放Gitee开源--新体系为webpack搭建)

    记得给个star呀伙伴 Github(https://github.com/NexusLin/NexusReact) Gitee(https://gitee.com/NexusLinNoa/NexusReact) 环境介绍 1、检查本地环境 node版本 18.17.0 检查node和npm环境 node -v npm -v 2、安装yarn npm install -g yarn yarn --version 3、创建一个新的React项目 npx create-react-app ltbreact 4、进入并运行项目

    2024年04月13日
    浏览(37)
  • Webpack:HTML Webpack Plugin插件

            HTML Webpack Plugin 插件,在Webpack构建的前端项目中,用于简化index.html文件的创建,以免除项目打包之后手动创建/拷贝index.html到打包目录下的繁琐步骤。以下,从一个已构建好的Vue项目中的一个现象谈起,逐步深入了解此插件的使用。 目录 从Vue项目中的index.html谈起

    2024年02月07日
    浏览(41)
  • webpack插件compression-webpack-plugin

    1、为什么要压缩? 打包的时候开启gzip可以很大程度减少包的大小,页面大小可以变为原来的30%甚至更小,非常适合于上线部署。更小的体积对于用户体验来说就意味着更快的加载速度以及更好的用户体验 2、为什么gzip压缩后页面加载速度提升 浏览器向服务器发出请求,并且

    2024年02月17日
    浏览(34)
  • webpack打包之 copy-webpack-plugin

    copy-webpack-plugin 打包复制文件插件。 1、什么时候要使用? 在离线应用中,前端所有文件都需在在本地,有些文件(比如iconFont以及一些静态img)需要转为离线文件,这些文件可以直接引用更方便些,这就需要在打包时直接复制到打包文件下。 2、安装依赖 3、配置webpack 4、打包

    2024年02月17日
    浏览(42)
  • 手写一个webpack插件(plugin)

    熟悉 vue 和 react 的小伙伴们都知道,在执行过程中会有各种生命周期钩子,其实webpack也不例外,在使用webpack的时候,我们有时候需要在 webpack 构建流程中引入自定义的行为,这个时候就可以在 hooks 钩子中添加自己的方法。 创建插件 webpack 加载 webpack.config.js 中所有配置,此

    2024年02月08日
    浏览(47)
  • 04-webpack中使用plugin

    loader是用于特定的模块的类型转换,plugin用于执行更加广泛的任务,比如打包优化、资源管理、环境变量注入等。 CleanWebpackPlugin 用于清除之前打包的文件。npm install clean-webpack-plugin DefinePlugin DefinePlugin允许在编译时创建配置的全局常量,是一个webpack内置的插件(不需要单独安

    2024年02月09日
    浏览(44)
  • 手写Webpack-Plugin

    通过插件我们可以扩展webpack,使webpack可以执行更广泛的任务,拥有更强的构建能力。 webpack 就像一条生产线,要经过一系列处理流程后才能将源文件转换成输出结果。 这条生产线上的每个处理流程的职责都是单一的,多个流程之间有存在依赖关系,只有完成当前处理后才能

    2024年01月21日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包