【发布时间】:2018-07-03 18:37:17
【问题描述】:
我需要在 Node 中获取给定 ES 模块的父 URL、路径或说明符。
我正在使用node --experimental-modules / vanilla ES 模块(这里没有转译!)。
目前代码库运行在 Node 10.5 之上。
例如:
// moduleA.mjs
import { x } from './moduleB.mjs'
// moduleB.mjs
// How do I get the file URL, path or
// the specifier of `moduleA`?
export const x = 11
【问题讨论】:
-
如果
moduleB被多个模块导入怎么办?似乎父路径上的基本行为极有可能使您的代码更难管理。 -
我严重怀疑这是可能的。
-
什么是“父”?一个模块可以是一百万个文件中的依赖项。作为开发人员,您已经知道您的导入层次结构,所以这个问题强烈表明您正在尝试解决一个您认为需要了解父级的问题,而我们真正应该做什么而是在谈论您要解决的问题。那么:你在做什么让你认为这是必要的?
-
有一个
module.parent,(请参阅docs)虽然它可能不是您正在寻找的。它是“首先需要这个的模块。” -
@loganfsmyth 加载程序钩子提供了
parentModuleURL,这是正在加载依赖项的模块。我一直在寻找这样的东西。
标签: javascript node.js ecmascript-6 module