【发布时间】:2021-06-21 22:37:47
【问题描述】:
使用最新版本的 Closure Compiler,无论我如何在 import 语句中指定模块的路径,我似乎都无法加载 ES6 模块。
为了测试这一点,我在同一个目录中创建了两个非常简单的文件。
defaults.js:
const defaults = {color: "#F44336"}
export {defaults}
test.js:
import {defaults} from 'defaults.js'
console.log(defaults.color)
当我只运行 test.js 而不尝试使用 Closure Compiler 处理它时,它会按预期工作并导入模块。但是尝试编译它会产生错误:
test.js:1:0: ERROR - [JSC_JS_MODULE_LOAD_WARNING] Failed to load module "defaults"
这是我正在使用的命令行:
compiler \
--module_resolution NODE \
--compilation_level ADVANCED \
--language_in ECMASCRIPT_2020 \
--language_out ECMASCRIPT_2020 \
--js test.js
我尝试将 test.js 中模块文件的路径指定为完全限定的绝对路径,以及各种形式的相对路径,但没有任何效果。我还尝试将模块文件添加为编译器的--js 选项,但没有骰子。
这似乎是一件简单的事情,但我也没有通过广泛的谷歌搜索找到解决方案。谁能告诉我我错过了什么?
【问题讨论】:
-
你能确认你使用的是什么版本的编译器吗?
-
最新的Linux版本:v20210601。
-
我不敢相信我是唯一一个尝试过使用 Closure Compiler 做到这一点的人。
标签: javascript ecmascript-6 es6-modules google-closure-compiler