Skip to content

Commit

Permalink
docs: add stopCallback method example (#3876)
Browse files Browse the repository at this point in the history
  • Loading branch information
snitin315 committed Sep 24, 2021
1 parent 4962424 commit 3bc48a0
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 0 deletions.
39 changes: 39 additions & 0 deletions examples/api/stop-callback/README.md
@@ -0,0 +1,39 @@
# API: stopCallback(callback)

While it's recommended to run `webpack-dev-server` via the CLI, you may also choose to start a server via the API.

This example demonstrates using `stopCallback(callback)` method. It instructs `webpack-dev-server` instance to stop the server and then run the callback function.

```js
const Webpack = require("webpack");
const WebpackDevServer = require("webpack-dev-server");
const webpackConfig = require("./webpack.config");

const compiler = Webpack(webpackConfig);
const devServerOptions = { ...webpackConfig.devServer };
const server = new WebpackDevServer(devServerOptions, compiler);

server.startCallback(() => {
console.log("Successfully started server on http://localhost:8080");
});

const stopServer = () =>
server.stopCallback(() => {
console.log("Server stopped.");
});

setTimeout(stopServer, 5000);
```

Use the following command to run this example:

```console
node server.js
```

## What Should Happen

1. The script should start the server and open `http://localhost:8080/` in your default browser.
2. You should see the text on the page itself change to read `Success! Reload the page after 5 seconds.`.
3. After 5 seconds, the script will stop the server. Confirm by reloading the browser page after 5 seconds.
4. You should see `Server stopped.` in your terminal output.
6 changes: 6 additions & 0 deletions examples/api/stop-callback/app.js
@@ -0,0 +1,6 @@
"use strict";

const target = document.querySelector("#target");

target.classList.add("pass");
target.innerHTML = "Success! Reload the page after 5 seconds.";
20 changes: 20 additions & 0 deletions examples/api/stop-callback/server.js
@@ -0,0 +1,20 @@
"use strict";

const Webpack = require("webpack");
const WebpackDevServer = require("../../../lib/Server");
const webpackConfig = require("./webpack.config");

const compiler = Webpack(webpackConfig);
const devServerOptions = { ...webpackConfig.devServer, open: true };
const server = new WebpackDevServer(devServerOptions, compiler);

server.startCallback(() => {
console.log("Successfully started server on http://localhost:8080");
});

const stopServer = () =>
server.stopCallback(() => {
console.log("Server stopped.");
});

setTimeout(stopServer, 5000);
16 changes: 16 additions & 0 deletions examples/api/stop-callback/webpack.config.js
@@ -0,0 +1,16 @@
"use strict";

// our setup function adds behind-the-scenes bits to the config that all of our
// examples need
const { setup } = require("../../util");

module.exports = setup({
context: __dirname,
entry: "./app.js",
output: {
filename: "bundle.js",
},
stats: {
colors: true,
},
});

0 comments on commit 3bc48a0

Please sign in to comment.