【问题标题】:ES6: How to Import and Export modules and keep access from consoleES6:如何导入和导出模块并保持从控制台访问
【发布时间】:2020-03-10 10:22:23
【问题描述】:

通常我可以从控制台触发 UIkit 函数,例如:

UIkit.alert('.myalert').close();

我有一个使用 UIkit 和一个虚拟函数的小例子。 编译时,我不再可以通过控制台访问:

import UIkit from 'uikit';
import Icons from './uikit/uikit-icons';
UIkit.use(Icons);

import Myfunction from './myfunction';

document.addEventListener('DOMContentLoaded', () => {
    Myfunction('something');
})

我添加了这个来导出 UIkit,但没有运气:

export default { UIkit };

【问题讨论】:

    标签: javascript ecmascript-6 uikit babeljs


    【解决方案1】:

    import之后添加window.UIkit = UIkit

    【讨论】:

    • 这行得通,但是这种方法对内存管理有问题吗?这会导致两个 UIkit 并行运行吗?
    • 不是同一个实例,只是它现在是一个可从控制台访问的全局变量
    • 好的,谢谢。我仍然不明白为什么可以通过控制台访问 vanilla UIkit。他们只是从uikit.jsexport default UIkit
    • 这不是 UIkit 的问题,而是任何使用 ES6 import / export 语法的模块
    【解决方案2】:

    我相信一定是export default UIkit; 因为现在你导出一个对象,UIkit 是它的关键。 但您还需要将UIkit 导入myfunction

    【讨论】:

    • 我也试过export default UIkit,但无法从控制台访问。
    • 另一种方法是在你做window.UIkit = UIkit的地方创建一个文件,然后你必须在你的主文件中import './<filename>'
    • FWIW,这个答案并没有真正解决问题。 OP 正在使用属性值简写,这是 ES6 的一个特性
    猜你喜欢
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    相关资源
    最近更新 更多