有没有办法
Express
应用程序中使用 ES6 模块编写我的代码;babel
或 @std/esm
?一旦我致力于
app.js
或Express
,我就找不到摆脱它的方法。
这似乎应该已经在网络上,但我能找到的只是上面的选项(转译,esm)。
使用node.js,你必须告诉它你正在加载的主文件是一个ESM模块。有几种方法可以做到这一点。最简单的方法是为主文件添加
.mjs
文件扩展名。
// app.mjs
import express from 'express';
const app = express();
app.get("/", (req, res) => {
res.send("hello");
});
app.listen(80);
然后,启动你的程序:
node app.mjs
这有效 - 我刚刚使用节点 v14.4.0 运行它:。其他方法可以在我之前给您的链接here中讨论。根据该文档,可以通过三种方法指定您将 ESM 模块加载为顶级模块文件:
以
.mjs
结尾的文件。
当最近的父
.js
文件包含值为“module”的顶级字段“type”时,以 package.json
结尾的文件。
字符串作为参数传入
--eval
,或通过 STDIN 通过管道传输到节点,带有标志 --input-type=module
。