@vnxjs/service
Version:
Vnmf Service
50 lines • 2.77 kB
JavaScript
"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