【发布时间】:2020-11-11 06:37:34
【问题描述】:
这是我的代码:
// @flow
import { EntityModel } from '@http-utils/hateoas';
我编译它:
babel src/ -d dist/
然后我运行它,但出现运行时错误:
$ node dist/http-utils-hateoas-example.js
import { EntityModel } from '@http-utils/hateoas';
^
SyntaxError: Unexpected token {
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
我做错了什么?
编辑
根据 Flow 文档,我的 babel 配置只有 @babel/preset-flow。看起来这只是剥离流。如何配置 babel 以对可以在 nodejs 上运行的代码进行额外的编译?
{
"presets": [
"@babel/preset-flow"
]
}
【问题讨论】:
-
从堆栈跟踪看起来您正在尝试使用 Common JS 加载 ESModule
-
嗨 Aleksey,我已将我的 babel 配置添加到问题中。想办法让babel生成Common JS,以便node.js可以执行
-
问题解决了!我只需要另一个预设:@babel/preset-env
标签: flowtype