代码之家  ›  专栏  ›  技术社区  ›  stackers bsyk

如何在具有父上下文的模块中使用require?

  •  0
  • stackers bsyk  · 技术社区  · 6 年前

    应用程序js

    require('./modules/mod');
    

    modules.exports = () => {
       require('./modules/secondmodule');
    }
    

    本质上,我希望上面的代码能够需要模块,但是使用的上下文与调用它本身的上下文相同,例如,同一文件夹中的另一个模块,而不必使用相对路径。

    我想 module.require()

    编辑:

    我发现我可以用 require.parent.module 它似乎在起作用。如果不建议,请告诉我。

    0 回复  |  直到 6 年前
        1
  •  1
  •   Estus Flask    6 年前

    require 使用相对于当前模块的路径。通过提供 从父模块:

    modules.exports = parentRequire => {
       parentRequire('./modules/secondmodule');
    }
    

    其用法如下:

    require('./modules/mod')(require);
    

    require('../secondmodule');
    

    mod 必须与 secondmodule ,依赖项可以用一些常见的模式提供给它,例如依赖项注入或服务定位器。

        2
  •  0
  •   stackers bsyk    6 年前

    module.exports = () => {
       module.parent.require('./modules/secondmodule');
    }