2015-12-09 31 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

相关问题