我有一个小应用程序正在转换为使用汇总。它使用ES6模块——当我运行rollup -c
时,它会抱怨我的一个ES6模块:
/js/monogram.js (imported by srcmain.js)
(!) Missing global variable name
Use output.globals to specify browser global variable names corresponding to external modules
/js/monogram.js (guessing 'drawMonogram')
created publicjsbundle.js in 311ms
模块monogram.js
使用:
export default drawMonogram
我用导入
import drawMonogram from '/js/monogram.js';
这两者在rollup
之前都起作用。现在这样不好吗?
我真的应该让output.globals
指定一个全局名称吗?
为什么我需要全局变量?ES6模块的全局需求(我本以为模块会在功能范围内(还是汇总?
Rollup的错误与问题完全无关它根本无法在该路径导入模块。在浏览器中使用ES6模块,
import drawMonogram from '/js/monogram.js';
是相对于web服务器根目录的。然而,在显影盒上使用rollup
,
import drawMonogram from '/js/monogram.js';
被认为是相对于硬盘的。使用相对导入修复了错误。
import drawMonogram from './monogram.js';