提问者:小点点

(节点:9511)实验警告:ESM模块加载程序处于实验状态[已关闭]


此问题是由拼写错误或无法再复制的问题引起的。虽然类似的问题可能在这里是主题,但这个问题以一种不太可能帮助未来读者的方式得到解决。

我试图在服务器端使用ES6。我将endpoint从服务器文件中分离出来:

档案.js:

import { Router } from "express";
const router = Router();

router.get("/", async (req, res) => { "some code"});

export default router;

当我想像这样将其导入到我的服务器文件时:

import archive from "./endpoints/archive.js";
app.use("/archive", archive);

它给我一个错误:

(node: 9565)实验警告:ESM模块加载器是实验性的。内部/模块/run_main.js:54内部绑定('错误').triggerUncaughtException()

知道伙计们吗?我不想回到require/module.exports。


共2个答案

匿名用户

您可以使用节点 v14.12.0;在解决了此问题的位置,请阅读此文档 https://nodejs.org/api/esm.html#esm_package_json_type_field

匿名用户

经过几次尝试后,我意识到“nodemon”上的“--experimental-modules”标志会导致在整个应用程序中实现导入的问题,所以我确实更新了该标志以将新标志用于显式文件名“--es-module-specifier-resolution=node”,现在工作完美,这是一篇关于这个新标志的文章: https://nodejs.medium.com/announcing-a-new-experimental-modules-1be8d2d6c2ff

因此,对于explane,您可以执行如下脚本:

nodemon --es-module-specifier-resolution=node

还要记住你使用的nodejs版本是12以下的版本。XX,14。XX还是上一个稳定版本。

在Mac OS上升级Node.js至最新版本

我希望这能帮助更多的开发者:)