有没有什么优雅的获取config文件的方法
发布于 7 年前 作者 dislido 6108 次浏览 来自 问答
test
  index.js
  config.json //我想读取的配置文件
  lib
    mymodule  //我的模块
	  index.js  // 需要读取config.json
	mymodule2 //我的另一个模块
	  index.js // 也需要读取config.json
    // 还有很多模块需要config.json...	  

可以直接使用require('../../config.json'),但是感觉非常不灵活,如果我把自己的模块移动到test/lib/mymodules/下的话就要对代码进行修改了

可以用require(process.cwd()+'/config.json'),这样无论模块放在哪里都能得到根目录下的config.json,但是eslint报 import/no-dynamic-require,虽然可以关掉这个报错但是想知道还有没有更好的办法来获得这个文件呢

8 回复

目录结构要有稳定性,不会总变来变去的。 所有 require(’./config’); require(’…/…/config’); 没有什么问题。

直接写个查找多层目录下config.json文件,找到完整路径再require,config.json爱放那放那

1,配置文件同一命名为config,配置文件内添加自我描述字段。 2,写一配置文件加载器,通过分析该文件系统中的文件名找到配置文件,获取其具体路径并读取其中标识符字段,并开启socket或http服务, 3,编写配置文件网络请求器,通过标识符向配置文件加载器发送并请求返回配置文件路径或文件内数据。

来自酷炫的 CNodeMD

使用config模块吧 省事!!!

如果说是在多个模块都要使用的话,建议放global

在入口文件global.config = require(‘config.json’)

定义一个alias 别名 ,config文件在哪里就改这个定义的位置。 在其他所有的文件,可以直接 require(’config’)。

在任何方地都用require.main.require(’./config.json’)應該可以。

来自酷炫的 CNodeMD

回到顶部