@anansi/webpack-config
Version:
Production ready webpack for React
23 lines (21 loc) • 2.93 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
class WatchMissingNodeModulesPlugin {
constructor(nodeModulesPath) {
this.nodeModulesPath = nodeModulesPath;
}
apply(compiler) {
compiler.hooks.emit.tap('WatchMissingNodeModulesPlugin', compilation => {
var missingDeps = Array.from(compilation.missingDependencies);
var nodeModulesPath = this.nodeModulesPath;
// If any missing files are expected to appear in node_modules...
if (missingDeps.some(file => file.includes(nodeModulesPath))) {
// ...tell webpack to watch node_modules recursively until they appear.
compilation.contextDependencies.add(nodeModulesPath);
}
});
}
}
exports.default = WatchMissingNodeModulesPlugin;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXYXRjaE1pc3NpbmdOb2RlTW9kdWxlc1BsdWdpbiIsImNvbnN0cnVjdG9yIiwibm9kZU1vZHVsZXNQYXRoIiwiYXBwbHkiLCJjb21waWxlciIsImhvb2tzIiwiZW1pdCIsInRhcCIsImNvbXBpbGF0aW9uIiwibWlzc2luZ0RlcHMiLCJBcnJheSIsImZyb20iLCJtaXNzaW5nRGVwZW5kZW5jaWVzIiwic29tZSIsImZpbGUiLCJpbmNsdWRlcyIsImNvbnRleHREZXBlbmRlbmNpZXMiLCJhZGQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbHVnaW5zL1dhdGNoTWlzc2luZ05vZGVNb2R1bGVzUGx1Z2luLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIFdhdGNoTWlzc2luZ05vZGVNb2R1bGVzUGx1Z2luIHtcbiAgY29uc3RydWN0b3Iobm9kZU1vZHVsZXNQYXRoKSB7XG4gICAgdGhpcy5ub2RlTW9kdWxlc1BhdGggPSBub2RlTW9kdWxlc1BhdGg7XG4gIH1cblxuICBhcHBseShjb21waWxlcikge1xuICAgIGNvbXBpbGVyLmhvb2tzLmVtaXQudGFwKCdXYXRjaE1pc3NpbmdOb2RlTW9kdWxlc1BsdWdpbicsIGNvbXBpbGF0aW9uID0+IHtcbiAgICAgIHZhciBtaXNzaW5nRGVwcyA9IEFycmF5LmZyb20oY29tcGlsYXRpb24ubWlzc2luZ0RlcGVuZGVuY2llcyk7XG4gICAgICB2YXIgbm9kZU1vZHVsZXNQYXRoID0gdGhpcy5ub2RlTW9kdWxlc1BhdGg7XG5cbiAgICAgIC8vIElmIGFueSBtaXNzaW5nIGZpbGVzIGFyZSBleHBlY3RlZCB0byBhcHBlYXIgaW4gbm9kZV9tb2R1bGVzLi4uXG4gICAgICBpZiAobWlzc2luZ0RlcHMuc29tZShmaWxlID0+IGZpbGUuaW5jbHVkZXMobm9kZU1vZHVsZXNQYXRoKSkpIHtcbiAgICAgICAgLy8gLi4udGVsbCB3ZWJwYWNrIHRvIHdhdGNoIG5vZGVfbW9kdWxlcyByZWN1cnNpdmVseSB1bnRpbCB0aGV5IGFwcGVhci5cbiAgICAgICAgY29tcGlsYXRpb24uY29udGV4dERlcGVuZGVuY2llcy5hZGQobm9kZU1vZHVsZXNQYXRoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQWUsTUFBTUEsNkJBQTZCLENBQUM7RUFDakRDLFdBQVdBLENBQUNDLGVBQWUsRUFBRTtJQUMzQixJQUFJLENBQUNBLGVBQWUsR0FBR0EsZUFBZTtFQUN4QztFQUVBQyxLQUFLQSxDQUFDQyxRQUFRLEVBQUU7SUFDZEEsUUFBUSxDQUFDQyxLQUFLLENBQUNDLElBQUksQ0FBQ0MsR0FBRyxDQUFDLCtCQUErQixFQUFFQyxXQUFXLElBQUk7TUFDdEUsSUFBSUMsV0FBVyxHQUFHQyxLQUFLLENBQUNDLElBQUksQ0FBQ0gsV0FBVyxDQUFDSSxtQkFBbUIsQ0FBQztNQUM3RCxJQUFJVixlQUFlLEdBQUcsSUFBSSxDQUFDQSxlQUFlOztNQUUxQztNQUNBLElBQUlPLFdBQVcsQ0FBQ0ksSUFBSSxDQUFDQyxJQUFJLElBQUlBLElBQUksQ0FBQ0MsUUFBUSxDQUFDYixlQUFlLENBQUMsQ0FBQyxFQUFFO1FBQzVEO1FBQ0FNLFdBQVcsQ0FBQ1EsbUJBQW1CLENBQUNDLEdBQUcsQ0FBQ2YsZUFBZSxDQUFDO01BQ3REO0lBQ0YsQ0FBQyxDQUFDO0VBQ0o7QUFDRjtBQUFDZ0IsT0FBQSxDQUFBQyxPQUFBLEdBQUFuQiw2QkFBQSIsImlnbm9yZUxpc3QiOltdfQ==