in packages/core/src/plugins/config/config.ts [56:99]
export default (api: PluginAPI, opts: PluginOptions, args: CommandArgs) => {
/**
* register get config api
*/
let config: PluginConfig | null = null;
const absConfigPath = args.config ? join(api.getCwd(), args.config) : getConfigFile(api.getCwd());
api.registerSyncAPI('getConfig', () => {
let devConfig = {};
if (getEnv().isDev()) {
try {
devConfig = require(absConfigPath.replace(/\.js$/, `.local.js`));
} catch(e) {
//...
}
}
// 如果用户自己传入了配置, 那么使用传入的配置.
// TODO: 最好是可以合并配置
if (opts.config) {
config = opts.config;
}
if (config) {
return config;
}
config = defaultConfig();
if (absConfigPath) {
config = Object.assign(
{},
config,
requireFile(absConfigPath),
devConfig,
);
}
debug('core', 'finish process config, config is: %j', config);
return config;
});
};