如何使用使用babel编译并在浏览器中使用Webpack导出的类

时间:2016-05-29 14:34:33

标签: gulp ecmascript-6 webpack babeljs

我有一个基于websocket的库的项目,该库包含需要在Node和浏览器中运行的组件。目前,图书馆的组织和构建如下:

  • 所有不同的组件都写入自己的es6文件。
  • 浏览器中使用的组件将转换为es5文件(使用babel)
  • 然后将已编译的文件聚合到一个文件中(使用webpack和babel加载程序)

如何访问浏览器中组件中定义的各种类? (即如何使var Client = require("client");等效于工作?)

P.S。 - 我使用Gulp来管理所有这些,所以特别感谢包含gulp解决方案的答案。

1 个答案:

答案 0 :(得分:2)

我希望,我帮助你,但你想做的基本上是在浏览器中打开你的开发工具并输入client.myFunction(),对吗?

如果是这样,您需要将库client附加到全局命名空间或窗口对象。这需要在主入口点文件中进行,其中导入所有其他子模块。

示例(client.js)

import {myFunction} from './functions';
import {myConstant} from './constants';

const Client = {
    myFunction, // or: myFunction: myFunction (if you do not use ES7)
    myConstant
};

window.Client = Client; // or global.Client = Client;

现在,您可以通过script-tag将脚本包添加到HTML页面中,并且应该能够在浏览器或页面上调用window.Client.myFunction(),即Client.myFunction()

那是你想要的吗?让我知道!