@vrbo/nimbuild-webpack

Library that provides nimbuild webpack bundling at runtime

Usage no npm install needed!

<script type="module">
  import vrboNimbuildWebpack from 'https://cdn.skypack.dev/@vrbo/nimbuild-webpack';
</script>

README

@vrbo/nimbuild-webpack

NPM Version Build Status

Library that provides nimbuild webpack bundling at runtime

Installation

npm install --save @vrbo/nimbuild-webpack

Usage

Import module and instantiate new class instance:

const webpacknimbuild = require('@vrbo/nimbuild-webpack')({
    webpackConfig: {...}, // customize webpack compiler
    maxEntries: 100 // defaults to 0 for infinity
});

Get bundle string:

async function getBundleString() {
    const response = await webpacknimbuild.run({
        entry: ['react', 'react-dom'],
        minify: true,
        modifyScript: (script) => {
            // Optionally wrap response
            return `!function (undefined) { 'use strict'; ${script} }();`;
        }
    });
    return response.script; // contains string value of bundle
}

Getting / Setting Cache:

// Get serialized cache
const serializedData = webpacknimbuild.serializeCache();

// Set cache from serialized data
webpacknimbuild.deserializeCache(serializedData);

Configure nimbuild-webpack to handle ES6+ source code

const webpacknimbuild = require('@vrbo/nimbuild-webpack')({
    webpackConfig: {
        module: {
            rules: [
                {
                    test: /\.js$/,
                    loader: 'babel-loader'
                }
            ]
        }
    }
});

Development

Starting development harness

npm start

Prettier

This projects supports auto-formatting of source code! Simply find your favorite IDE from the list in the following list: https://prettier.io/docs/en/editors.html

For VSCode support, perform the following steps:

  • Launch VS Code Quick Open (Ctrl+P)
  • Paste the following command, and press enter:
ext install esbenp.prettier-vscode