猿问

nodejs如何更好的覆盖默认配置

背景:
NodeJS在写服务端程序的时候,我写了一套默认的配置文件和项目配置文件,如下:

// 目录结构// 基础配置文件/base/config/config1.js/base/config/config2.js/base/config/config3.js
// 项目配置文件/subapp/config/config1.js/subapp/config/config2.js

逻辑:
当项目配置文件存在的时候,项目文件和跟进文件名覆盖基础配置文件。
/subapp/config/config1.js 会覆盖掉 /base/config/config1.js
/subapp/config/config2.js 会覆盖掉 /base/config/config2.js
/subapp/config/config3.js 没有,则不会覆盖掉 /base/config/config3.js

最终项目使用的配置文件是:
/subapp/config/config1.js
/subapp/config/config2.js
/base/config/config3.js

问题:
webpack打包的时候,会出现错误,因为我覆盖文件的方式是用fs.existsSync()先判断/subapp/config/xxx.js是否存在,存在则require并覆盖掉,所以这个require是在运行过程中执行的,打包时候不会把/subapp/config/.打包进来,导致运行时候报错。

  1. webpack是否可以增加默写配置,解决这个问题。

  2. 你是否有更好的办法,解决覆盖默认配置。

  3. 你是否有更好的解决方案来支持默认配置文件与自定义配置文件并存。

备注:
不是用 process.env.NODE_ENV 这个东西解决,因为它解决的是环境的差异配置,我需要的是默认配置和自定义配置的方案。


跃然一笑
浏览 691回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答