webpack-sandboxed
v0.6.0
Published
Webpack in a sandbox.
Downloads
23
Readme
webpack-sandboxed
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.Configuration
– webpack configurationpackages?: 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 toWebpackCompiler.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:
- https://github.com/webpack/webpack/issues/1562
- https://github.com/christianalfoni/webpack-bin/issues/106
- https://github.com/christianalfoni/webpack-bin