2016-11-21 82 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',然後需要其他版本。然而,要求兩個版本的角度聽起來像一場噩夢,我只是不會那樣做 –