在script1.js中,我具有以下导出:
export function test1() {
// do something
}
export function test2() {
// do something
}
我正在将script1.js导入script2.js:
import * as functions from './script1.js';
functions.test1();
functions.test2();
我想知道是否有办法从script1.js导入所有模块,然后直接将它们放在script2.js的全局变量中。因此,我可以使用test1(),test2()直接访问它们,而无需将它们放入对象的中间步骤。
我知道我们可以做到import {test1, test2} from './script1.js';
,但是如果我有很多出口,那么解构将是乏味的。
换句话说,我正在寻找的东西等同于:
import * from './script1.js';
test1();
test2();
上面的代码块是假设的,并且不起作用。
根据您当前的代码,这是不可能的。模块的重点是避免潜在的全球污染。为此,您必须将功能明确分配给模块内部的全局对象,例如,change:
export function test1() {
// do something
}
至
window.test1 = function test1() {
// do something
};
然后,在导入模块时,这些功能将在全局范围内可用:
import './script1.js';
但这是一种反模式:
但是如果我有很多出口,那么解构将是乏味的。
它确实需要一些样板,但不要担心-在较大的项目中,拥有显式的依赖链对于可维护性而言是一大优势。它还允许树状摇动,这仅对于具有副作用的模块(例如分配给全局对象)是不可能的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句