gpt4 book ai didi

javascript - esm 不解析模块别名

转载 作者:数据小太阳 更新时间:2023-10-29 06:09:20 47 4
gpt4 key购买 nike

所以我正在使用包 esmmodule-alias,但似乎 esm 没有注册模块别名的路径。

这是我加载服务器文件的方式:

nodemon -r esm ./src/index.js 8081

这是我的 index.js 文件的顶部:

import "module-alias/register"
import "@/setup"

import "@/setup" 不起作用,而 require("@/setup") 起作用。

最佳答案

问题是 esm 在解析文件时试图在加载任何其他模块之前处理所有 import 语句。

在处理import 语句时,它使用 Node 的内置require 而不是由module-alias 创建的修改过的require >

要解决此问题,您需要先加载 module-alias,然后加载 esm。这样,module-alias 将有机会在 esm 开始执行任何操作之前修改 require 函数。

您可以通过将多个 -r 参数传递给 Node 来实现此目的,但要确保 module-alias 位于第一位:

node -r module-alias/register -r esm index.js 8081

或使用 nodemon:

nodemon -r module-alias/register -r esm ./src/index.js 8081

您还需要从代码中删除 import "module-alias/register",因为现在它是从命令行加载的。

关于javascript - esm 不解析模块别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53200528/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com