diff --git a/docs/topics/web.md b/docs/topics/web.md index 0adb79526..660651bb7 100644 --- a/docs/topics/web.md +++ b/docs/topics/web.md @@ -1,9 +1,22 @@ # Web builds In addition to your usual Node applications, discord.js has special distributions available that are capable of running in web browsers. This is useful for client-side web apps that need to interact with the Discord API. -[Webpack 2](https://webpack.js.org/) is used to build these. +[Webpack 3](https://webpack.js.org/) is used to build these. -## Usage +## Restrictions +- Any voice-related functionality is unavailable, as there is currently no audio encoding/decoding capabilities without external native libraries, + which web browsers do not support. +- The ShardingManager cannot be used, since it relies on being able to spawn child processes for shards. +- None of the native optional packages are usable. + +### Require Library +If you are making your own webpack project, you can require `discord.js/browser` wherever you need to use discord.js, like so: +```js +const Discord = require('discord.js/browser'); +// do something with Discord like you normally would +``` + +### Webpack File You can obtain your desired version of discord.js' web build from the [webpack branch](https://github.com/hydrabolt/discord.js/tree/webpack) of the GitHub repository. There is a file for each branch and version of the library, and the ones ending in `.min.js` are minified to substantially reduce the size of the source code. @@ -15,13 +28,7 @@ Include the file on the page just as you would any other JS library, like so: Rather than importing discord.js with `require('discord.js')`, the entire `Discord` object is available as a global (on the `window`) object. The usage of the API isn't any different from using it in Node.js. -## Restrictions -- Any voice-related functionality is unavailable, as there is currently no audio encoding/decoding capabilities without external native libraries, - which web browsers do not support. -- The ShardingManager cannot be used, since it relies on being able to spawn child processes for shards. -- None of the optional packages are usable, since they're native libraries. - -## Example +#### Example ```html