UNPKG

@luban-cli/cli-plugin-service

Version:
75 lines 3.35 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadProjectOptions = void 0; const cli_shared_utils_1 = require("@luban-cli/cli-shared-utils"); const chalk_1 = __importDefault(require("chalk")); const shelljs_1 = __importDefault(require("shelljs")); const path_1 = __importDefault(require("path")); const fs_extra_1 = __importDefault(require("fs-extra")); const help_1 = require("../commands/help"); const options_1 = require("../lib/options"); const cleanAssetPath_1 = require("./cleanAssetPath"); function requireSpecifiedConfigFile(filePath, context, configFilename) { const spinner = new cli_shared_utils_1.Spinner(); spinner.logWithSpinner(`compiling ${chalk_1.default.green(configFilename)} ... \n`); const configTempDir = path_1.default.resolve(context, "node_modules/@luban-cli/cli-plugin-service/temp"); const configTempDirPath = path_1.default.resolve(`${configTempDir}/${configFilename}`); try { const tscBinPath = `${context}/node_modules/typescript/bin/tsc`; const compileArgs = `--module commonjs --skipLibCheck --esModuleInterop --outDir ${configTempDir}`; const { code } = shelljs_1.default.exec(`${tscBinPath} ${filePath} ${compileArgs}`); if (code !== 0) { // ignore compile error, just print warn cli_shared_utils_1.warn(`compiled ${chalk_1.default.bold(configFilename)} file failure \n`); } } catch (e) { } let configModule = undefined; try { configModule = cli_shared_utils_1.loadFile(`${configTempDirPath.replace(/(.+)(\.ts)/gi, "$1.js")}`); } catch (e) { spinner.stopSpinner(); } spinner.stopSpinner(); return configModule; } function loadProjectOptions(context, configFilename) { let fileConfig = null; let resolved = {}; const configPath = path_1.default.resolve(context, configFilename); if (!fs_extra_1.default.pathExistsSync(configPath)) { cli_shared_utils_1.error(`specified config file ${chalk_1.default.bold(`${configPath}`)} nonexistent, please check it.`); process.exit(); } try { let _fileConfig = requireSpecifiedConfigFile(configPath, context, configFilename); if (!_fileConfig || typeof _fileConfig !== "object") { cli_shared_utils_1.error(`Error load ${chalk_1.default.bold(`${configFilename}`)}: should export an object. \n`); _fileConfig = undefined; } if (help_1.isObject(_fileConfig)) { fileConfig = _fileConfig; } } catch (e) { } if (fileConfig) { resolved = fileConfig; } else { resolved = {}; } resolved.publicPath = resolved.publicPath ? cleanAssetPath_1.padTailSlash(resolved.publicPath) : resolved.publicPath; resolved.outputDir = resolved.outputDir ? cleanAssetPath_1.cleanAssetPath(resolved.outputDir) : resolved.outputDir; options_1.validateProjectConfig(resolved, (msg) => { cli_shared_utils_1.error(`Invalid options in ${chalk_1.default.bold(configFilename)}: ${msg}`); }); return resolved; } exports.loadProjectOptions = loadProjectOptions; //# sourceMappingURL=loadProjectConfig.js.map