2016-11-21 70 views
1

是否有可能在需要时阻止角度实例注入全局(窗口)范围并与webpack或任何其他模块捆绑器绑定?角度窗口注入

我发现,目前的主要JavaScript文件中的角NPM包:

require('./angular'); 
module.exports = angular; 

我的WebPack项文件的内容是:

import angular from 'angular'; 

// my custom code goes here 

因此,主要的WebPack任务是防止泄漏变量到全球范围,但如果我尝试在Chrome DevTools中这样记录角度:

console.log(angular); // => Object {version: Object, callbacks: Object} 

我会看到,该角实例被注入。任何想法来防止这种情况?

附加信息:
Angular.js版本 - 1.6.0-rc.0
的WebPack版本 - 2.1.0-beta.27

更新。

回答

0

它看起来像它的硬编码到发布NPM代码全局角度可变不管分配给window对象:

angular   = window.angular || (window.angular = {}) 

所以这是防止它的发生没有直接的方法。加载后总是可以使用delete window.angular,但不会影响库的承诺。

+0

我的想法是防止在一个页面上使用不同角度版本的角度实例注入全局范围。我不要删除窗口对象中的角度变量的东西适合我。 –

+0

所以唯一能做到我想要的就是编辑角度来源? –

+0

您可以尝试将其存储为变量var localAngular = window.angular;在require后删除window.angular',然后需要其他版本。然而,要求两个版本的角度听起来像一场噩梦,我只是不会那样做 –