0.4.57 • Published 9 months ago

@rushstack/webpack-plugin-utilities v0.4.57

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months 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.57

9 months ago

0.4.56

9 months ago

0.4.55

9 months ago

0.4.54

9 months ago

0.4.53

9 months ago

0.4.51

9 months ago

0.4.52

9 months ago

0.4.50

10 months ago

0.4.49

10 months ago

0.4.42

12 months ago

0.4.43

12 months ago

0.4.40

1 year ago

0.4.41

12 months ago

0.4.48

11 months ago

0.4.46

11 months ago

0.4.47

11 months ago

0.4.44

12 months ago

0.4.45

12 months ago

0.4.31

1 year ago

0.4.32

1 year ago

0.4.39

1 year ago

0.4.37

1 year ago

0.4.38

1 year ago

0.4.35

1 year ago

0.4.36

1 year ago

0.4.33

1 year ago

0.4.34

1 year ago

0.4.30

1 year ago

0.4.29

1 year ago

0.4.28

1 year ago

0.4.27

1 year ago

0.4.26

1 year ago

0.4.25

1 year ago

0.4.24

1 year ago

0.4.23

1 year ago

0.4.22

1 year ago

0.4.21

1 year ago

0.4.20

1 year ago

0.4.19

1 year ago

0.4.18

1 year ago

0.4.17

1 year ago

0.4.16

1 year ago

0.4.15

1 year ago

0.4.14

1 year ago

0.4.13

1 year ago

0.4.12

1 year ago

0.4.11

1 year ago

0.4.9

1 year ago

0.4.8

1 year ago

0.4.7

1 year ago

0.4.6

1 year ago

0.4.5

1 year ago

0.4.4

1 year ago

0.4.3

1 year ago

0.4.2

1 year ago

0.4.1

1 year ago

0.4.0

1 year ago

0.3.16

2 years ago

0.3.15

2 years ago

0.3.14

2 years ago

0.3.13

2 years ago

0.2.27

2 years ago

0.2.26

2 years ago

0.3.0

2 years ago

0.3.6

2 years ago

0.3.5

2 years ago

0.3.8

2 years ago

0.3.7

2 years ago

0.3.2

2 years ago

0.3.1

2 years ago

0.3.4

2 years ago

0.3.3

2 years ago

0.3.9

2 years ago

0.3.12

2 years ago

0.3.11

2 years ago

0.3.10

2 years ago

0.2.30

2 years ago

0.2.37

2 years ago

0.2.36

2 years ago

0.2.35

2 years ago

0.2.34

2 years ago

0.2.33

2 years ago

0.2.32

2 years ago

0.2.31

2 years ago

0.2.29

2 years ago

0.2.28

2 years ago

0.2.25

2 years ago

0.2.24

2 years ago

0.2.23

2 years ago

0.2.22

2 years ago

0.2.21

2 years ago

0.2.20

2 years ago

0.2.19

2 years ago

0.2.18

2 years ago

0.2.17

2 years ago

0.2.16

2 years ago

0.2.15

2 years ago

0.2.14

2 years ago

0.2.13

2 years ago

0.2.12

2 years ago

0.2.11

2 years ago

0.2.10

2 years ago

0.2.7

2 years ago

0.2.9

2 years ago

0.2.8

2 years ago

0.1.57

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.2.6

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.1.52

2 years ago

0.1.53

2 years ago

0.1.54

2 years ago

0.1.55

2 years ago

0.1.56

2 years ago

0.1.50

2 years ago

0.1.51

2 years ago

0.1.49

2 years ago

0.1.47

3 years ago

0.1.48

3 years ago

0.1.41

3 years ago

0.1.42

3 years ago

0.1.43

3 years ago

0.1.44

3 years ago

0.1.45

3 years ago

0.1.46

3 years ago

0.1.40

3 years ago

0.1.38

3 years ago

0.1.39

3 years ago

0.1.30

3 years ago

0.1.31

3 years ago

0.1.32

3 years ago

0.1.33

3 years ago

0.1.34

3 years ago

0.1.35

3 years ago

0.1.36

3 years ago

0.1.37

3 years ago

0.1.29

3 years ago

0.1.10

3 years ago

0.1.11

3 years ago

0.1.12

3 years ago

0.1.13

3 years ago

0.1.14

3 years ago

0.1.15

3 years ago

0.1.27

3 years ago

0.1.28

3 years ago

0.1.20

3 years ago

0.1.21

3 years ago

0.1.22

3 years ago

0.1.23

3 years ago

0.1.24

3 years ago

0.1.25

3 years ago

0.1.26

3 years ago

0.1.16

3 years ago

0.1.8

3 years ago

0.1.17

3 years ago

0.1.7

3 years ago

0.1.18

3 years ago

0.1.19

3 years ago

0.1.9

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.0

3 years ago