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);
});