1234567891011121314151617181920212223242526272829303132 |
- const fs = require('fs');
- class KW_WebpackPlugin {
- constructor(options) {
- this.karmaEmitter = options.karmaEmitter;
- this.controller = options.controller;
- }
- apply(compiler) {
- this.compiler = compiler;
- // webpack bundles are finished
- compiler.hooks.done.tap('KW_WebpackPlugin', async (stats) => {
- // read generated file content and store for karma preprocessor
- this.controller.bundlesContent = {};
- stats.toJson().assets.forEach((webpackFileObj) => {
- const filePath = `${compiler.options.output.path}/${
- webpackFileObj.name
- }`;
- this.controller.bundlesContent[webpackFileObj.name] = fs.readFileSync(
- filePath,
- 'utf-8'
- );
- });
- // karma refresh
- this.karmaEmitter.refreshFiles();
- });
- }
- }
- module.exports = KW_WebpackPlugin;
|