Webpack Virtual Modules with watch mode support
JavaScript
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

Webpack Virtual Modules

Build Status Greenkeeper badge Twitter Follow

Webpack Plugin that allows dynamical generation of in-memory virtual modules. Watch mode is supported. Any write to virtual module will be seen by Webpack as if the corresponding file was changed.

Installation

npm install --save-dev webpack-virtual-modules

Usage

Static virtual modules generation

Sample Webpack config:

var VirtualModulesPlugin = require("webpack-virtual-modules");

var virtualModules = new VirtualModulesPlugin({
  'node_modules/module-foo.js': 'module.exports = { foo: "foo" };'
  'node_modules/module-bar.js': 'module.exports = { bar: "bar" };'
});

module.exports = {
    // ...
    plugins: [
      virtualModules
    ]
};

Somewhere in the source code:

var moduleFoo = require('module-foo');
// Outputs 'foo'
console.log(moduleFoo.foo);

Dynamic virtual modules generation

var webpack = require("webpack");
var VirtualModulesPlugin = require("webpack-virtual-modules");

var virtualModules = new VirtualModulesPlugin();

var compiler = webpack({
    // ...
    plugins: [
      virtualModules
    ]
});

compiler.plugin('watch', function(callback) {
  virtualModules.writeModule('node_modules/module-foo.js', '');
  callback();
});

compiler.watch();
// Later in some other code, perhaps in other Webpack plugin:
virtualModules.writeModule('node_modules/module-foo.js', 
    'module.exports = { foo: "foo" };');

// After this write the webpack will "see" that module-foo.js
// has been changed and restarts compilation

Inspiration

This project is inspired by: https://github.com/rmarscher/virtual-module-webpack-plugin

License

Copyright © 2017 SysGears INC. This source code is licensed under the MIT license.