function IsomorphicPlugin(options = {}) {
  this.options = Object.assign({}, options);
  this.exts = {};
  this.fs = new MemoryFileSystem();
  assert(Array.isArray(this.options.assets), 'assets should be an array');

  for (const asset of this.options.assets) {
    if (typeof asset === 'string' && /\.[0-9a-zA-Z]+/.test(asset)) {
      this.exts[asset] = {
        ext: asset,
        exclude: 'node_modules',
      };
    } else if (
      typeof asset === 'object' &&
      asset.ext &&
      /\.[0-9a-zA-Z]+/.test(asset.ext)
    ) {
      asset.exclude = asset.exclude || 'node_modules';
      this.exts[asset.ext] = asset;
    }
  }

  debug('IsomorphicPlugin initialized with exts: %o', this.exts);
}
isomorphic plugin for webpack
@param {*} options
 {
   context: // webpack context
   assetsFilePath: // path for asset file write into
   assets: [{
     ext: '.scss',
     exclude: 'node_modules'
     include: false,
   }]
 }