【发布时间】:2019-11-05 20:13:32
【问题描述】:
我正在创建一个需要能够从项目根目录读取配置文件的 npm 包。我不知道该怎么做。
例如,
- Next.js 能够从项目根目录读取
./pages/和./next.config.js - Jest 能够从项目根目录读取
./jest.config.js - ESLint 能够从项目根目录读取
./.eslintrc.json - Prettier 能够从项目根目录读取
./.prettierrc.js - Typescript 能够从项目根目录读取
./tsconfig.json - Babel 能够从项目根目录读取
./.babelrc
我尝试查看他们的源代码以了解他们是如何做到的,但项目太大,我找不到相关部分。
他们是如何做到这一点的?
【问题讨论】:
-
通过诸如;
require()、fs.readFile()或fs.readFileSync()。如果使用最后两种方法中的任何一种,则如果配置文件是 JSON,则它们随后会JSON.parse()内容。例如 eslintrc.json 使用fs.readFileSync. -
项目根的构成没有标准。这就是为什么例如ESLint 将从当前目录(或用户提供的另一个目录)到文件系统根目录查找
.eslintrc文件。 npm 在搜索package.json时会做类似的事情,除了它在第一次匹配时停止。
标签: javascript node.js npm node-modules