javascript - Webpack - 动态导入类

标签 javascript webpack import es6-modules dynamic-import

我正在尝试在满足路由器条件时动态导入类。

我导入标准(非类)模块没有问题,因为它按预期工作:

Router.on({
    '/:region/map': (params) => {
      import("Controllers/map.js" /* webpackChunkName: "map" */).then(({map}) => {
        map.initialise(params.region);
      });
    }
});

但是尝试对类执行相同操作并不能按预期工作。

Router.on({
    '/:region/map': (params) => {
      import("Controllers/map.js" /* webpackChunkName: "map" */).then(Map => {
        Map.initialise(params.region);
      });
    }
});

失败“e.initialise 不是函数”;

我还尝试使用 new 关键字实例化该类:

Router.on({
    '/:region/map': (params) => {
      import("Controllers/map.js" /* webpackChunkName: "map" */).then(Map => {
        const MapClass = new Map();
        MapClass.initialise(params.region);
      });
    }
});

但还是没有喜悦!

在这种情况下如何动态导入类?

更新:

这是我的 map 模块,作为非类模块,可以工作:

var map = {
    initialise(region) {
        console.log("Map initialised for region: " + region);
    }
}
export { map };

这是同一个模块,但作为一个类:

export default class Map {
    constructor() {
        //
    }
    initialise(region) {
        console.log("Map initialised for region: " + region);
    }
}

最佳答案

  class Map {
    constructor() {
        //
    }
    initialise(region) {
        console.log("Map initialised for region: " + region);
    }
  } 

     export { Map }




      Router.on({
        '/:region/map': (params) => {
          import("Controllers/map.js").then(({ Map })=> {
            const MapClass = new Map();
            MapClass.initialise(params.region);
          });
        }
      });

你可以尝试上面的代码,看看你是否在控制台中获得了 Class

关于javascript - Webpack - 动态导入类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51785992/

相关文章:

sql - 以编程方式从文件导入数据库?

visual-studio-2010 - JSON.NET 如何引用?

javascript - 是否有任何跨浏览器(IE7-8)支持CSS3属性显示的js文件:box/display:flexbox?

javascript - 模块无法在 React App 中加载。获取 "ERROR in ./~/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"

javascript - Node.js 混淆了参数的语法

webpack - 如何让 Flow 与 Vue 2 (webpack) 一起正常工作?

javascript - 这些 Webpack v3 ModuleConcatenationPlugin 救助消息是什么意思?

javascript - 在 ES6 中更改导入变量的值

Javascript Loop <UL> 一键旋转列表

javascript - 函数式编程将 Monad 数组转换为数组的单个 Monad