brain-vue-cli
Version:
A command line tool used to run projects
23 lines • 934 B
text/typescript
import * as path from 'path';
/**
* 模拟Node的递归找查找文件
* @param directory 指定递归开始的文件夹
* @param relativeFilename 相对路径<文件名>
* @param previousDirectory 外部不做设定, 这个参数记录上一次文件夹位置, 用于检查是否到达文件夹顶层
* @returns {any}
*/
export function emulateNodeRecursiveLookup(directory: string, relativeFilename: string, previousDirectory?: string): any {
try {
const loopUpTarget = path.resolve(directory, relativeFilename);
console.log(loopUpTarget);
return require(loopUpTarget);
} catch (e) {
directory = path.dirname(directory);
if (previousDirectory != directory) {
previousDirectory = directory;
return emulateNodeRecursiveLookup(directory, relativeFilename, previousDirectory);
} else {
return null;
}
}
}