将对象直接暴露给浏览器窗口,或者暴露给全局对象的sup属性

时间:2017-04-06 12:31:15

标签: webpack webpack-2

在我的反应应用程序中,我使用webpack将我的组件暴露给全局“命名空间”,以便从浏览器javascripts和浏览器控制台访问它们。

为此,我使用expose-loader。据我所知,expose-loader将模块的默认导出公开为全局命名空间中的命名对象。

所以,如果我的模块my-module公开了这个对象

module.exports = {
   Person: Person,
   Company: Company
}

然后我可以使用类似于

的要求公开导出
require("expose-loader?MyModuleComponents!my-module");

然后,在浏览器的控制台中,我可以看到MyModuleComponents对象中存在属性window,此属性包含我的模块的导出。

然后,我可以引用我的Person组件,例如

var p = MyModuleComponents.Person;

有没有办法

  1. 直接将导出的每个属性直接暴露给全局对象而不是另一个全局对象的属性? (例如,在Person属性中公开我的window.Person组件,而不是在window.MyModuleComponents.Person属性中公开。
  2. 使用对象路径作为导出对象? (例如,以类似于MyModule.MyComponents
  3. 的方式在require("expose-loader?MyModule.MyComponents!my-module");对象中公开我的导出

0 个答案:

没有答案