2015-11-11 83 views
0

我使用babel.js和我的代碼有一個新的模塊富進口遺留的js代碼

foo.js:

export function foo(number) { 
    return number + 42; 
} 

而且一堆大老文件,其中的一切是全球性的。我需要從該遺留代碼調用foo函數。

bar.js:

... 
var result = foo(0); 
... 

但我不能只導入foo的原因,然後我bar.js將是一個模塊,並從其他舊代碼不可用。有沒有辦法導入模塊 並保留我的bar.js全球?

+2

*「但我不能只導入foo的原因,然後我bar.js將是一個模塊,並從其他不可用舊代碼「*如果你想使用它,你必須導入模塊文件。上下文是什麼? bar.js在第一種情況下如何「全局」使用。 –

+0

您使用哪個模塊加載器?你是否會轉向commonjs? – Bergi

+0

我使用webpack。在bar.js中有很多全局變量和函數用於應用程序的其他部分。 –

回答

1

我最近有點類似的問題。我結束了污染window對象與我遺留代碼中需要的一切。

我創建單獨register.js模塊用於此目的,它包括我的WebPack編譯:

import ClassA from './ClassA' 
import ClassB from './ClassB' 
import * as utils from './utils' 

Object.assign(window, utils) 
Object.assign(window, {ClassA, ClassB})