|
@@ -0,0 +1,27 @@
|
|
|
+var path = require('path');
|
|
|
+var assign = require('object-assign');
|
|
|
+var forEachBail = require('enhanced-resolve/lib/forEachBail');
|
|
|
+var basename = require('enhanced-resolve/lib/getPaths').basename;
|
|
|
+
|
|
|
+module.exports = function (modulesToResolveToEs5) {
|
|
|
+ return {
|
|
|
+ apply: doApply.bind(this, modulesToResolveToEs5)
|
|
|
+ };
|
|
|
+};
|
|
|
+
|
|
|
+function doApply(modulesToResolveToEs5, resolver) {
|
|
|
+ // file type taken from: https://github.com/webpack/enhanced-resolve/blob/v4.0.0/test/plugins.js
|
|
|
+ var target = resolver.ensureHook("undescribed-raw-file");
|
|
|
+ //console.log(resolver.hooks);
|
|
|
+ resolver.getHook("resolve")
|
|
|
+ .tapAsync("DirectoryNamedWebpackPlugin", (request, resolveContext, callback) => {
|
|
|
+ for(var package of modulesToResolveToEs5){
|
|
|
+ if(request.request.indexOf(package+"/") == 0){
|
|
|
+ const newRequest = Object.assign({}, request, { request: package, });
|
|
|
+ return resolver.doResolve(target, newRequest, "viewer resolved", resolveContext, callback);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return callback();
|
|
|
+ });
|
|
|
+}
|