Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example
lib
test
.gitignore
.npmignore
.travis.yml
LICENSE
README.md
package.json
tsconfig.json
tslint.json
yarn.lock

README.md

webpack-sandboxed   npm version Build Status Coverage Status Code Climate

Webpack in a sandbox. Run webpack on a in-memory file system, reading from a source string and outputting results as strings again. This is useful when using webpack for compiling bundles on the fly, e.g. on a web server.


Usage

import webpackSandboxed from 'webpack-sandboxed';

const options = {
  config: { /* webpack configuration */ },
  packages: [ /* names of modules to load in the sandbox */ ],
  includes: [ /* local file paths to load in the sandbox */ ],
  baseDir: 'base directory to resolve modules'
};

const sandbox = await webpackSandboxed(options);
const [bundle, stats] = sandbox.run("exports = {foo: 'bar'};");

API

webpackSandboxed(options: Options): WebpackRunner

Create a new instance of WebpackRunner.

Options

Options to configure webpack and webpack sandboxed.

  • config?: webpack.Configurationwebpack configuration
  • packages?: string[] – A list of node_modules to load into the virtual file system.
  • includes?: string[] – A list of directories to add to the virtual file system.
  • basedir?: string – The base directory to resolve modules from. Defaults to the parent directory of the webpack-sandboxed installation.

WebpackRunner

Webpack sandboxed instance.

  • run(source: string | Buffer): Promise<[WebpackBundle, webpack.Stats]> – Run webpack asynchronously (delegating to WebpackCompiler.run).

WebpackBundle

Result of a webpack sandboxed run.

  • [key: string]: Buffer – The set of files generated by webpack (bundles and assets).

Example

Please view the example directory for a complete example of how to use webpack sandboxed.

References

This project was inspired by others: