Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 阻止require(…)查找父目录中的模块大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的Node项目的根目录位于一个目录中,该目录本身是另一个Node项目的根目录.所以这两个文件夹都包含package.json和node_modules.问题是在内部项目中,有时我需要在此项目中未安装的模块.但Node只是地在父项目的node_modules中找到它们,这会导致恼人的意外.我可以以某种方式阻止它这样做吗?我不想改变项目的目录结构,除非它是唯一的解决方案.

解决方法

@H_673_8@ 节点尝试解析当前模块路径名,并将node_modules连接到每个父目录. [Source].

您可以在项目模块的顶部覆盖此方法,并添加一些逻辑以从结果路径数组中排除父目录.

//app.js <-- parent project module,should be added at the top

var Module = require('module').Module;
var nodeModulePaths= Module._nodeModulePaths; //BACkup the original method

Module._nodeModulePaths = function(from) {
    var paths = nodeModulePaths.call(this,from); // call the original method

    //add your logic here to exclude parent dirs,I did a simple match with current dir
    paths = paths.filter(function(path){
        return path.match(__dirName)
    })
    return paths;
};

灵感来自this module

大佬总结

以上是大佬教程为你收集整理的node.js – 阻止require(…)查找父目录中的模块全部内容,希望文章能够帮你解决node.js – 阻止require(…)查找父目录中的模块所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。