2015-12-09 28 views
4

認爲我已經得到了大部分第三方庫的工作,但沒有使用script-loader,但沒有任何舊腳本可以使用。它們都寫成,如何在全局上下文中運行大量腳本?

var i_am_totally_global = 6; 

function i_expect_to_just_run_in_the_browser() {} 

所以我能想到的唯一選擇就是在全局/窗口上下文中運行它們。但是,如果我嘗試創建一個「入口」腳本這樣的事情,

require('script!./AjaxList'); 
require('script!./MozCompatibility'); 
require('script!./DynamicSelect'); 
require('script!./DynamicSelect2'); 
require('script!./prototype'); 
... 

然後ProvidePlugin不會對他們的工作,這意味着除非我script!這些呢,他們無法訪問我的供應商庫,但那麼我就回到原點 - 全球和webpack都不會爲我做任何事情。

是不是有辦法在export的全局範圍內聲明的所有東西,沒有明確列出每一個函數+ var?


我發現了另一個裝載機,legacy-loader,而且我認爲他會做什麼,我想要的。但是,它只能導出已添加到窗口對象的全局變量,明確地(window.abc = xyz)或隱式(abc = xyz)。但是,如果您的舊腳本不是var abc = xyzfunction abc() {},那麼它將不起作用,因爲如果您將其包裝在函數中,那麼這些變量將成爲幾乎不可能在JavaScript中訪問的本地變量。

唯一真正做到這一點的方法AFAIK實際上是解析的JavaScript。然而,Webpack已經解析了JS,所以你希望它可以收集這些頂級局部變量,但似乎並沒有這樣的選擇。

回答

0

也許像Expose Loader?會允許你這樣做?

+0

除非Expose有一個我沒有意識到的祕密「揭露所有事物」選項。 – mpen

相關問題