我認爲我已經得到了大部分第三方庫的工作,但沒有使用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 = xyz
或function abc() {}
,那麼它將不起作用,因爲如果您將其包裝在函數中,那麼這些變量將成爲幾乎不可能在JavaScript中訪問的本地變量。
唯一真正做到這一點的方法AFAIK實際上是解析的JavaScript。然而,Webpack已經解析了JS,所以你希望它可以收集這些頂級局部變量,但似乎並沒有這樣的選擇。
除非Expose有一個我沒有意識到的祕密「揭露所有事物」選項。 – mpen