用于查找具有多个可能根的文件路径的节点模块

时间:2016-02-26 04:00:47

标签: node.js

是否有Node模块允许您指定多个根,给它一个文件,并尝试查找该文件?

知道很多图书馆/模块会做这类事情,但是我的Google-fu无法为它创建现有模块,这有点令人惊讶。

澄清一下,基本上如果我有这样的配置:

roots: ['node_modules', 'bower_components', 'src']

我要求它找到" my-file.js",它会搜索以下内容:

node_modules/my-file.js
bower_components/my-file.js
src/my-file.js

并返回解析为现有文件的第一个,或返回错误,说明无法解决该问题。

1 个答案:

答案 0 :(得分:1)

我也不知道这个库,但你要求的只需几行代码即可:

const fs = require('fs');
const path = require('path');
const roots = ['node_modules', 'bower_components', 'src'];
const myFile = 'my-file.js';
const result = roots.map(root => path.resolve(path.join(root,myFile))).map(fs.existsSync);

这将为您提供与roots中每个元素对应的true / false值数组。因此,如果存在src/my-file.jsnode_modules/my-file.js,您将获得result [true, false, true]