tho*_*rn̈ 10 node.js node-modules
我的Node项目的根目录位于一个目录中,该目录本身是另一个Node项目的根目录.所以这两个文件夹包含package.json和node_modules.问题是在内部项目中,有时我的require模块没有安装在这个项目中.但Node只是默默地在父项目中找到它们,node_modules这会导致恼人的惊喜.我可以以某种方式阻止它这样做吗?我不想改变项目的目录结构,除非它是唯一的解决方案.
节点尝试解析当前模块路径名并连接node_modules到每个父目录.[来源].
您可以在项目模块的顶部覆盖此方法,并添加一些逻辑以从结果路径数组中排除父目录.
//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;
};
Run Code Online (Sandbox Code Playgroud)
灵感来自这个模块
| 归档时间: |
|
| 查看次数: |
1441 次 |
| 最近记录: |