Javascript将文件中的所有模块作为全局变量导入

艾萨克·牛顿

在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

导入模块中的全局变量

确定模块的所有全局变量

从模块导入全局变量

Python-将全局变量作为导入模块的参数传递

如何将所有全局变量从Julia代码保存到文件中?

是否可以将模块注入到导入模块的全局变量中?

如何将文件夹中的所有文件作为模块导入并将所有文件作为对象导出?

为什么__init__.py将文件夹中的所有文件作为模块导入?

覆盖从其他模块导入的函数中的全局变量

从python中的其他模块导入单个全局变量

导入模块中全局变量的可见性

如何将所有全局变量导入函数-Python

Python中所有模块的全局变量

在需要时导入javascript文件和全局变量

为什么在“导入模块”和“从模块导入*”中,全局变量的行为不同?

将全局变量作为函数中的参数进行操作

如何声明所有刀片文件可用的全局变量?

如何将全局变量注入所有模板?

最好使用全局变量作为Javascript中的缓存?

如何在任何给定的 JavaScript 环境中查看所有全局变量?

如何在Javascript中添加所有测试使用的全局变量?

如何在JavaScript中获取所有pyodide全局变量

在python函数中检测所有全局变量?

遍历C ++中的所有Lua全局变量

列出Node.js中的所有全局变量

在Javascript模块之间共享的全局变量

Webpack中的“导入全局变量”

如何声明一个全局变量并在 ReactJS 的所有其他模块中访问它?

全局变量在模块中的作用域