12345678910111213141516171819202122232425262728293031323334353637383940 |
- const webpack = require("webpack");
- class ReplaceCssPlugin {
- constructor(options) {
- this.options = options
- }
- apply(compiler) {
- compiler.hooks.emit.tapAsync(
- "ReplaceCssPlugin",
- (compilation, callback) => {
-
- Object.keys(compilation.assets).forEach((filename) => {
- if (filename.endsWith(".css")) {
-
- const originalContent = compilation.assets[filename].source();
-
- const replacedContent = originalContent && !Buffer.isBuffer(originalContent) ? originalContent.replace(
- /:root\{/g,
- ":root,:host{"
- ): originalContent;
-
- compilation.assets[filename] = {
- source: () => replacedContent,
- size: () => replacedContent.length,
- };
- }
- });
- callback();
- }
- );
- compiler.hooks.done.tap("compilation", () => {
- console.log("compilation");
- });
- }
- }
- module.exports = ReplaceCssPlugin;
|