const webpack = require('webpack');
const MemoryFS = require('memory-fs');
const memoryFs = new MemoryFS();
memoryFs.writeFileSync('/entry1.js', `System.global = { foo: 'bar' };`, 'utf-8');
const compiler = webpack({
    entry: '/entry1.js',
    output: {
        path: '/build/',
        filename: 'main.js'
    }
});
compiler.inputFileSystem = memoryFs;
compiler.outputFileSystem = memoryFs;
compiler.resolvers.normal.fileSystem = compiler.inputFileSystem;
compiler.resolvers.context.fileSystem = compiler.inputFileSystem;
compiler.run((err, stats) => {
    if(err) {
        console.log(err);
    }
    const errors = stats.compilation.errors;
    if (errors && errors.length > 0) {
        console.log(errors);
        throw errors[0];
    }
    const content = memoryFs.readFileSync('/build/main.js', 'utf-8');
    //console.log(content);
    eval(content);
});