Skip to content

VSCode extension to launch a live server that is aware of p5.js

License

Notifications You must be signed in to change notification settings

osteele/vscode-p5server

Repository files navigation

p5-server

vscode version

Create and run p5.js sketches, explore sketch collections. Includes a sketch-aware development server with live reload; a sketch explorer; and support for JavaScript-only sketches with automatic library inclusion.

Features

Sketch Explorer

Screenshot: Default (file) and Sketch explorers

The Sketch Explorer is similar to Visual Studio Code's built-in Explorer, but the Sketch Explorer is organized around sketches instead of files. It supports both sketches that are included in HTML files, and JavaScript-only sketches (that don't have an HTML file).

Screenshot: Sketch explorer

Clicking on a sketch in the Sketch Explorer opens its JavaScript file in the Visual Studio Code editor.

Integrated Web Server

Workspace anatomy

The extension includes a local web server. This server reloads sketches when files are modified. It also serves JavaScript-only sketches in a way that the browser can play.

Integrated Browser

The Run Sketch command can open the sketch in an external web browser (such as Chrome, Safari, or Edge), or in an integrated browser inside Visual Studio Code. (The "P5-server: Browser" setting controls this.)

If the "P5-server > Explorer: Auto Run Sketch On Side" setting is enabled, clicking on a sketch in the Sketch Explorer also runs it next to the editor. This makes it easy to quickly browse a collection of sketches.

Gif: Run sketches inside VS Code

Integrated Console

Integrated console

When the "P5-server: Browser" setting is set to integrated, messages from console.log() and other console output will display in the output pane. These messages also appear inline in the JavaScript source file.

The console output pane automatically appears when a message is printed to it. This behavior can be changed via the "Console > Integrated Browser > Auto Show: Level" setting.

Automatic Library Includes

If a JavaScript-only sketch uses a class or function from one of the p5.js community libraries, or from my own library collection, that library is automatically included.

In the screenshot below, the extension infers that the sound.js sketch requires the p5.sound library, because of the presence of a call to loadSound(). Running the sketch will include this library.

The explorer also detects that the file doorbell.mp3 is associated with the sketch, because it's the argument to the p5.js function loadSound().

browser directory listing

Other Features

  • JavaScript-Only Sketches. A sketch can be a single JavaScript file. (No HTML is necessary.)
  • In-Page syntax errors. If a JavaScript file has a syntax error, it is displayed in the body of the page (you don't have to check the console).
  • P5-aware directory listings. Viewing a directory in the browser lists the sketches, folders, other files in that directory.
  • Sketch scripts generation. Create a JavaScript-only sketch that contains a minimal setup() and draw() function; or create a pair of index.html and sketch.js.

Installation

View the Visual Studio Code Marketplace extension page, and click the Install button.

Step by Step

Step-by-step installation and usage instructions are here.

Configuration

The extension provides configuration settings to set the browser, and to hide various user interface elements. Follow these instructions to modify these settings.

configuration screenshot

Limitations

See the p5-server documentation for limitations that also affect this extension.

In particular:

  • The extension has not been tested on Windows.
  • The sketches that are created by the “Create p5.js Sketch Folder” command require an internet connection to run. (They load the p5.js and other libraries from a content delivery network, or “CDN”.) Browsers cache these files, so reloading a page or running other sketches that use the same libraries does not require additional internet access, but you will need internet access the first time you use this extension or after the browser cache has expired.
  • Similarly, the server requires an internet connection the first time it displays a sketch or directory listing. (Remote assets are cached, so it does not need a connection to display a second sketch or a second directory listing.)

Related Projects

The sketch-aware server is available as command-line tool at p5-server. Install it via npm install -g p5-server, and run p5 serve or p5 serve --template split.

The command-line version can also be used to generate a static web site. This creates the HTML files that are necessary to run the sketch in a browser without a special server.

The code to infer libraries from JavaScript-only sketches, and to generate HTML files based on this, is available as a separate package.

https://code.osteele.com lists my other p5.js projects. These include tools, libraries, and examples and educational materials.

Keeping in Touch

Bug reports, suggestions, and other contributions are cheerfully accepted. Please use the Issues page of the GitHub repository.

Acknowledgements

License

MIT © by Oliver Steele

About

VSCode extension to launch a live server that is aware of p5.js

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages