UNPKG

@vnxjs/service

Version:
50 lines 2.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const helper_1 = require("@vnxjs/helper"); const fs = require("fs-extra"); const path = require("path"); const merge = require("webpack-merge"); const constants_1 = require("./utils/constants"); class Config { constructor(opts) { this.appPath = opts.appPath; this.init(); } init() { this.configPath = (0, helper_1.resolveScriptPath)(path.join(this.appPath, constants_1.CONFIG_DIR_NAME, constants_1.DEFAULT_CONFIG_FILE)); if (!fs.existsSync(this.configPath)) { this.initialConfig = {}; this.isInitSuccess = false; } else { (0, helper_1.createSwcRegister)({ only: [ filePath => filePath.indexOf(path.join(this.appPath, constants_1.CONFIG_DIR_NAME)) >= 0 ] }); try { this.initialConfig = (0, helper_1.getModuleDefaultExport)(require(this.configPath))(merge); this.isInitSuccess = true; } catch (err) { this.initialConfig = {}; this.isInitSuccess = false; console.log(err); } } } getConfigWithNamed(platform, useConfigName) { const initialConfig = this.initialConfig; const sourceDirName = initialConfig.sourceRoot || helper_1.SOURCE_DIR; const outputDirName = initialConfig.outputRoot || helper_1.OUTPUT_DIR; const sourceDir = path.join(this.appPath, sourceDirName); const entryName = helper_1.ENTRY; const entryFilePath = (0, helper_1.resolveScriptPath)(path.join(sourceDir, entryName)); const entry = { [entryName]: [entryFilePath] }; return Object.assign({ entry, alias: initialConfig.alias || {}, copy: initialConfig.copy, sourceRoot: sourceDirName, outputRoot: outputDirName, platform, framework: initialConfig.framework, compiler: initialConfig.compiler, cache: initialConfig.cache, logger: initialConfig.logger, baseLevel: initialConfig.baseLevel, csso: initialConfig.csso, sass: initialConfig.sass, uglify: initialConfig.uglify, plugins: initialConfig.plugins, projectName: initialConfig.projectName, env: initialConfig.env, defineConstants: initialConfig.defineConstants, designWidth: initialConfig.designWidth, deviceRatio: initialConfig.deviceRatio, projectConfigName: initialConfig.projectConfigName, jsMinimizer: initialConfig.jsMinimizer, cssMinimizer: initialConfig.cssMinimizer, terser: initialConfig.terser, esbuild: initialConfig.esbuild }, initialConfig[useConfigName]); } } exports.default = Config; //# sourceMappingURL=Config.js.map