首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >webpack规则中未定义的全局窗口变量

webpack规则中未定义的全局窗口变量
EN

Stack Overflow用户
提问于 2015-10-12 07:43:45
回答 1查看 2K关注 0票数 1

我使用webpack逗号来定义将与其他生成的包共同使用的全局库对象(公共组件)。

(**components.js**)通用代码

代码语言:javascript
复制
MyLib = window.MayLib = {}
MyLib.Utils = {
  commonFn : function (){
    /* common code */
  }
}

module.exports = MayLib;

(**dashboard.js**)第一次常用的

代码语言:javascript
复制
   require.ensure ('./components', function () {
      MyLib.Dashboard = {
        /** Dashboad code here */
      }
   })

(**account.js**) 第二种常用用法

代码语言:javascript
复制
   require.ensure ('./components', function (){
     MyLib.Account = {
       /** Account code here */
     }
   })

在生成包之后,已经创建了一个新的公共代码,但是MyLib is undefined in global window, "cannot set property of undefined"

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-14 09:35:40

您可以使用暴露装载机解决问题。也请参阅这个类似的问题

尽管我认为您可以通过要求回调中的MyLib对象来轻松地解决问题。不用再把它暴露在全局范围内了。

代码语言:javascript
复制
require.ensure ('./components', function (require){
  var MyLib = require('./components');
  MyLib.Account = {
    /** Account code here */
  }
})

Sidenote:您可以尝试通过使用CommonsChunkPlugin来简化您的代码分裂,然后只使用简单的require('components'),其余的就由插件来完成。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33075763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档