我刚接触到节点js,我想递归地找到最近的package.json,实际上,继续查找package.json,直到不会碰到它。
我的文件夹树
root/
-contarats/
-proto/
some.proto
-package.json
"script": {
"contracts": "generate-some-contracts contracts/proto contracts",
}
const input = process.argv[2]
const settings = require(path.resolve(input, 'package.json'))
2条答案
按热度按时间pnwntuvh1#
你在寻找一种遍历目录的方法吗?如果是的话,这里有一个同步函数可以做到这一点
}
这将返回名为package.json的所有文件及其完整文件路径的数组。
就我个人而言,我会用"\“字符将每一行断开,然后查看哪一行更接近我的根文件夹
gkl3eglg2#
查看目录树,
package.json
文件不在contracts/proto
中,而是在contracts
中(我假设contaracts
是一个输入错误)。更改命令行上的第一个参数应该会有所帮助:尽管如此,你还是会问到递归搜索最近的
package.json
,NPM在查找包根时会这样做,它从当前目录开始,然后沿着祖先目录,直到找到一个package.json
,一个阅读和解析package.json
的函数,类似于require
,可能如下所示: