Skip to content

Commit 3bc48a0

Browse files
authored
docs: add stopCallback method example (#3876)
1 parent 4962424 commit 3bc48a0

File tree

4 files changed

+81
-0
lines changed

4 files changed

+81
-0
lines changed

examples/api/stop-callback/README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# API: stopCallback(callback)
2+
3+
While it's recommended to run `webpack-dev-server` via the CLI, you may also choose to start a server via the API.
4+
5+
This example demonstrates using `stopCallback(callback)` method. It instructs `webpack-dev-server` instance to stop the server and then run the callback function.
6+
7+
```js
8+
const Webpack = require("webpack");
9+
const WebpackDevServer = require("webpack-dev-server");
10+
const webpackConfig = require("./webpack.config");
11+
12+
const compiler = Webpack(webpackConfig);
13+
const devServerOptions = { ...webpackConfig.devServer };
14+
const server = new WebpackDevServer(devServerOptions, compiler);
15+
16+
server.startCallback(() => {
17+
console.log("Successfully started server on http://localhost:8080");
18+
});
19+
20+
const stopServer = () =>
21+
server.stopCallback(() => {
22+
console.log("Server stopped.");
23+
});
24+
25+
setTimeout(stopServer, 5000);
26+
```
27+
28+
Use the following command to run this example:
29+
30+
```console
31+
node server.js
32+
```
33+
34+
## What Should Happen
35+
36+
1. The script should start the server and open `http://localhost:8080/` in your default browser.
37+
2. You should see the text on the page itself change to read `Success! Reload the page after 5 seconds.`.
38+
3. After 5 seconds, the script will stop the server. Confirm by reloading the browser page after 5 seconds.
39+
4. You should see `Server stopped.` in your terminal output.

examples/api/stop-callback/app.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
"use strict";
2+
3+
const target = document.querySelector("#target");
4+
5+
target.classList.add("pass");
6+
target.innerHTML = "Success! Reload the page after 5 seconds.";

examples/api/stop-callback/server.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
"use strict";
2+
3+
const Webpack = require("webpack");
4+
const WebpackDevServer = require("../../../lib/Server");
5+
const webpackConfig = require("./webpack.config");
6+
7+
const compiler = Webpack(webpackConfig);
8+
const devServerOptions = { ...webpackConfig.devServer, open: true };
9+
const server = new WebpackDevServer(devServerOptions, compiler);
10+
11+
server.startCallback(() => {
12+
console.log("Successfully started server on http://localhost:8080");
13+
});
14+
15+
const stopServer = () =>
16+
server.stopCallback(() => {
17+
console.log("Server stopped.");
18+
});
19+
20+
setTimeout(stopServer, 5000);
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
"use strict";
2+
3+
// our setup function adds behind-the-scenes bits to the config that all of our
4+
// examples need
5+
const { setup } = require("../../util");
6+
7+
module.exports = setup({
8+
context: __dirname,
9+
entry: "./app.js",
10+
output: {
11+
filename: "bundle.js",
12+
},
13+
stats: {
14+
colors: true,
15+
},
16+
});

0 commit comments

Comments
 (0)