viewerResolve.js 1.0 KB

123456789101112131415161718192021222324252627
  1. var path = require('path');
  2. var assign = require('object-assign');
  3. var forEachBail = require('enhanced-resolve/lib/forEachBail');
  4. var basename = require('enhanced-resolve/lib/getPaths').basename;
  5. module.exports = function (modulesToResolveToEs5) {
  6. return {
  7. apply: doApply.bind(this, modulesToResolveToEs5)
  8. };
  9. };
  10. function doApply(modulesToResolveToEs5, resolver) {
  11. // file type taken from: https://github.com/webpack/enhanced-resolve/blob/v4.0.0/test/plugins.js
  12. var target = resolver.ensureHook("undescribed-raw-file");
  13. //console.log(resolver.hooks);
  14. resolver.getHook("resolve")
  15. .tapAsync("ViewerResolvePlugin", (request, resolveContext, callback) => {
  16. for(var package of modulesToResolveToEs5){
  17. if(request.request.indexOf(package+"/") == 0){
  18. const newRequest = Object.assign({}, request, { request: package, });
  19. return resolver.doResolve(target, newRequest, "viewer resolved", resolveContext, callback);
  20. }
  21. }
  22. return callback();
  23. });
  24. }