0.4.25 • Published 3 days ago

@rushstack/webpack-plugin-utilities v0.4.25

Weekly downloads
-
License
MIT
Repository
github
Last release
3 days ago

webpack-plugin-utilities

Installation

npm install @rushstack/webpack-plugin-utilities --save

Overview

This is a collection of utilities for writing webpack plugins

Usage

VersionDetection

import { VersionDetection } from "@rushstack/webpack-plugin-utilities"

class MyExampleWebpackPlugin {
  constructor() {
    this.pluginName = "MyExampleWebpackPlugin"
  }

  apply(compiler) {
    if (VersionDetection.isWebpack3OrEarlier(compiler)) {
      throw new Error(`This plugin does not support webpack 3 or below.`)
    }

    const isWebpack4 = VersionDetection.isWebpack4(compiler);

    if (isWebpack4) {
      compiler.hooks.compilation.tap(this.pluginName, (compilation) => {
        // ....
      });
    } else {
      compiler.hooks.compilation.tap(this.pluginName, (compilation) => {
        // ...
      });
    }
  }
}

Testing

getTestingWebpackCompiler

import { getTestingWebpackCompiler } from "@rushstack/webpack-plugin-utilities"

describe("MyPlugin", () => {
  it("should run", async () => {
    const stats = await getTestingWebpackCompiler("./src/index.ts");

    expect(stats).toBeDefined();
  });
});

getTestingWebpackCompiler with additional configuration

If you want to pass in additional configuration to the webpack compiler, you can pass it in as the second parameter to getTestingWebpackCompiler.

import { getTestingWebpackCompiler } from "@rushstack/webpack-plugin-utilities"

describe("MyPlugin", () => {
  it("should run", async () => {
    const stats = await getTestingWebpackCompiler("./src/index.ts", {
      mode: "production",
    });

    expect(stats).toBeDefined();
  });
});

getTestingWebpackCompiler with virtual filesystem

If you want to be able to read, analyze, access the files written to the memory filesystem, you can pass in a memory filesystem instance to the memFs parameter.

import { getTestingWebpackCompiler } from "@rushstack/webpack-plugin-utilities"
import { createFsFromVolume, Volume, IFs } from "memfs"
import path from "path"

describe("MyPlugin", () => {
  it("should run", async () => {
    const virtualFileSystem: IFs = createFsFromVolume(new Volume());
    const stats = await getTestingWebpackCompiler(
      `./src/index.ts`,
      {},
      virtualFileSystem
    );

    expect(stats).toBeDefined();
    expect(virtualFileSystem.existsSync(path.join(__dirname, "dist", "index.js"))).toBe(true);
  });
});

Links

@rushstack/webpack-plugin-utilities is part of the Rush Stack family of projects.

0.4.25

3 days ago

0.4.24

29 days ago

0.4.23

2 months ago

0.4.22

2 months ago

0.4.21

2 months ago

0.4.20

2 months ago

0.4.19

2 months ago

0.4.18

2 months ago

0.4.17

2 months ago

0.4.16

2 months ago

0.4.15

2 months ago

0.4.14

3 months ago

0.4.13

3 months ago

0.4.12

3 months ago

0.4.11

3 months ago

0.4.9

3 months ago

0.4.8

3 months ago

0.4.7

3 months ago

0.4.6

3 months ago

0.4.5

3 months ago

0.4.4

4 months ago

0.4.3

4 months ago

0.4.2

4 months ago

0.4.1

4 months ago

0.4.0

4 months ago

0.3.16

4 months ago

0.3.15

5 months ago

0.3.14

5 months ago

0.3.13

5 months ago

0.2.27

10 months ago

0.2.26

10 months ago

0.3.0

8 months ago

0.3.6

8 months ago

0.3.5

8 months ago

0.3.8

7 months ago

0.3.7

7 months ago

0.3.2

8 months ago

0.3.1

8 months ago

0.3.4

8 months ago

0.3.3

8 months ago

0.3.9

7 months ago

0.3.12

6 months ago

0.3.11

6 months ago

0.3.10

6 months ago

0.2.30

10 months ago

0.2.37

9 months ago

0.2.36

9 months ago

0.2.35

10 months ago

0.2.34

10 months ago

0.2.33

10 months ago

0.2.32

10 months ago

0.2.31

10 months ago

0.2.29

10 months ago

0.2.28

10 months ago

0.2.25

11 months ago

0.2.24

11 months ago

0.2.23

11 months ago

0.2.22

11 months ago

0.2.21

11 months ago

0.2.20

11 months ago

0.2.19

11 months ago

0.2.18

11 months ago

0.2.17

11 months ago

0.2.16

11 months ago

0.2.15

11 months ago

0.2.14

11 months ago

0.2.13

11 months ago

0.2.12

11 months ago

0.2.11

12 months ago

0.2.10

12 months ago

0.2.7

1 year ago

0.2.9

12 months ago

0.2.8

1 year ago

0.1.57

1 year ago

0.2.1

1 year ago

0.2.0

1 year ago

0.2.6

1 year ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.5

1 year ago

0.2.4

1 year ago

0.1.52

1 year ago

0.1.53

1 year ago

0.1.54

1 year ago

0.1.55

1 year ago

0.1.56

1 year ago

0.1.50

1 year ago

0.1.51

1 year ago

0.1.49

1 year ago

0.1.47

1 year ago

0.1.48

1 year ago

0.1.41

2 years ago

0.1.42

2 years ago

0.1.43

2 years ago

0.1.44

2 years ago

0.1.45

2 years ago

0.1.46

1 year ago

0.1.40

2 years ago

0.1.38

2 years ago

0.1.39

2 years ago

0.1.30

2 years ago

0.1.31

2 years ago

0.1.32

2 years ago

0.1.33

2 years ago

0.1.34

2 years ago

0.1.35

2 years ago

0.1.36

2 years ago

0.1.37

2 years ago

0.1.29

2 years ago

0.1.10

2 years ago

0.1.11

2 years ago

0.1.12

2 years ago

0.1.13

2 years ago

0.1.14

2 years ago

0.1.15

2 years ago

0.1.27

2 years ago

0.1.28

2 years ago

0.1.20

2 years ago

0.1.21

2 years ago

0.1.22

2 years ago

0.1.23

2 years ago

0.1.24

2 years ago

0.1.25

2 years ago

0.1.26

2 years ago

0.1.16

2 years ago

0.1.8

2 years ago

0.1.17

2 years ago

0.1.7

2 years ago

0.1.18

2 years ago

0.1.19

2 years ago

0.1.9

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.0

2 years ago