A. *_*Lau 6 javascript node.js npm
所以我正在使用package esm和module-alias,但是esm似乎没有注册模块别名的路径。
这是我加载服务器文件的方式:
nodemon -r esm ./src/index.js 8081
Run Code Online (Sandbox Code Playgroud)
这是我index.js文件的顶部:
import "module-alias/register"
import "@/setup"
Run Code Online (Sandbox Code Playgroud)
import "@/setup"不起作用而起作用require("@/setup")。
问题在于,在解析文件时,esm尝试import在加载任何其他模块之前处理所有语句。
在处理import语句时,它使用节点的内置函数,require而不是require由module-alias
要解决此问题,您需要先加载module-alias,然后再加载esm。这样,module-alias将有机会require在esm做任何事情之前修改功能。
您可以通过将多个-r参数传递给node 来实现这一点,但是请确保module-alias首先实现:
node -r module-alias/register -r esm index.js 8081
Run Code Online (Sandbox Code Playgroud)
或搭配nodemon:
nodemon -r module-alias/register -r esm ./src/index.js 8081
Run Code Online (Sandbox Code Playgroud)
import "module-alias/register"由于现在是从命令行加载的,因此您还需要从代码中删除。
| 归档时间: |
|
| 查看次数: |
693 次 |
| 最近记录: |