UNPKG

@micro-app/core

Version:

[Core] Pluggable micro application framework.

48 lines (43 loc) 1.58 kB
'use strict'; const path = require('path'); const { logger, loadFile } = require('@micro-app/shared-utils'); const CONSTANTS = require('../Constants'); const MicroAppConfig = require('./MicroAppConfig'); const loadConfig = require('../../utils/loadConfig').carryPath; module.exports = MicroAppConfig; module.exports.createInstance = createInstance; /** * createInstance * @param {string} rootPath root * @param {Object} param param * @return {MicroAppConfig} config */ function createInstance(rootPath = process.cwd(), { originalRootPath = rootPath, ...opts } = {}) { const { MICRO_APP_CONFIG_NAME, PACKAGE_JSON, SCOPE_NAME } = CONSTANTS; let [ microConfig, filePath ] = loadConfig(rootPath, MICRO_APP_CONFIG_NAME); if (microConfig) { const _microAppConfig = new MicroAppConfig(microConfig, { ...opts, root: rootPath, filePath, originalRoot: originalRootPath, loadSuccess: true, }); return _microAppConfig; } // 文件未加载成功. 二次加载 package.json microConfig = loadFile(rootPath, PACKAGE_JSON); if (microConfig) { logger.debug('[loadFile]', `try load "${PACKAGE_JSON}"`); const filePath = path.resolve(rootPath, PACKAGE_JSON); const _microAppConfig = new MicroAppConfig(microConfig[SCOPE_NAME] || {}, { ...opts, root: rootPath, filePath, originalRoot: originalRootPath, loadSuccess: true, }); return _microAppConfig; } return null; }