【问题标题】:Rollup wants me to create global variables. How can I use 'export default'?Rollup 希望我创建全局变量。如何使用“导出默认值”?
【发布时间】:2018-12-25 16:44:03
【问题描述】:

我有一个小应用程序正在转换为使用汇总。它使用 ES6 模块 - 当我运行 rollup -c 时,它抱怨我的 ES6 模块之一:

/js/monogram.js (imported by src\main.js)
(!) Missing global variable name
Use output.globals to specify browser global variable names corresponding to external modules
/js/monogram.js (guessing 'drawMonogram')
created public\js\bundle.js in 311ms

模块monogram.js使用:

export default drawMonogram

我正在导入它:

import drawMonogram from '/js/monogram.js';

这两种方法在rollup 之前都有效。现在这样不行吗?

我真的应该让output.globals 指定一个全局名称吗?

为什么我需要一个全局变量? ES6 模块的全局需求(我原以为模块会在功能范围内)还是汇总?

【问题讨论】:

    标签: javascript es6-modules rollup


    【解决方案1】:

    Rollup 的错误与问题完全无关。根本无法在该路径导入模块。在浏览器中使用 ES6 模块,

    import drawMonogram from '/js/monogram.js';
    

    相对于 Web 服务器根目录。但是在开发框上使用rollup

    import drawMonogram from '/js/monogram.js';
    

    被认为是相对于硬盘上的/。使用相对导入修复了错误。

    import drawMonogram from './monogram.js';
    

    【讨论】:

    • 你救了我一晚,我想给你100分!!我有import Collision0 from 'cases/Collision0.svelte'; 并以./cases/... 开头完全改变了错误消息。
    • 我完全同意:这个提示为我节省了很多时间寻找错误的地方。实际问题是:我忘记安装要从中导入的包。安装(并由于其缓存而重新启动 sirv)后,一切都按预期工作!非常感谢!
    猜你喜欢
    • 2013-12-13
    • 2019-11-05
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 2014-11-29
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多