【发布时间】:2020-05-14 13:13:45
【问题描述】:
我有这个目录树:
project
|
-> dir1
|
-> dir2
|
-> module.mjs
server.mjs
utils.mjs
我当前的工作目录是:
project/
server.mjs源码
async function main(){
var module = await import("./dir1/dir2/module.mjs");
}
main();
module.mjs源码
//this works!
import utils from "../../utils.mjs";
//this fails!
import utils from "./utils.mjs";
似乎module.mjs中的静态导入考虑了点'.'作为自己的目录,而不是当前工作目录。
如何为动态导入设置当前目录?
而实际的基本问题是:如何避免长'../../.......'动态模块中的静态导入。
例如,我希望在 server.mjs 中有这样的东西:
var module = await import("./dir1/dir2/module.mjs",{cwd:"project/"});
或者,在动态模块中,能够使用:
import utils from './utils.mjs'
代替:
import utils from '../../long dot dot/utils.mjs'
【问题讨论】:
标签: javascript node.js dynamic ecmascript-6 import