UNPKG

@magic-number/webpack-magic-number

Version:
31 lines (30 loc) 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const path = require("path"); const webpack_sources_1 = require("webpack-sources"); const PluginName = "@magic-number/webpack-plugin"; class MagicCoverageReporter { /** * todo 增加entry过滤,支持正则表达式或者字符串 * todo 增加控制开关,默认在production环境关闭覆盖率上报 * @param options */ constructor(options) { this.options = options; } apply(compiler) { compiler.hooks.emit.tap(PluginName, (compilation) => { const script = fs.readFileSync(path.join(__dirname, "CoverageClient.js")); if (!script) { throw new Error("Can not find Coverage Reporter"); } const coverageReporter = new webpack_sources_1.RawSource("\n" + script); const { assets = {} } = compilation; Object.keys(assets).filter((i) => /\.js$/.test(i)).forEach((i) => { assets[i].add(coverageReporter); }); }); } } module.exports = exports = MagicCoverageReporter;