UNPKG

@luban-cli/cli-plugin-service

Version:
70 lines 2.43 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeProjectOptions = exports.validateProjectConfig = void 0; const cli_shared_utils_1 = require("@luban-cli/cli-shared-utils"); const lodash_defaultsdeep_1 = __importDefault(require("lodash.defaultsdeep")); const schema = cli_shared_utils_1.createSchema((joi) => joi.object({ publicPath: joi.string(), outputDir: joi.string(), indexPath: joi.string(), assetsDir: joi.object({ scripts: joi.string(), styles: joi.string(), images: joi.string(), media: joi.string(), fonts: joi.string(), }), productionSourceMap: joi.boolean(), css: joi.object({ sourceMap: joi.boolean(), loaderOptions: joi.object({ less: joi.object(), css: joi.object(), miniCss: joi.object(), }), }), alias: joi.object(), assetsLimit: joi.number(), mock: joi.boolean(), ssr: joi.boolean(), configureWebpack: joi.function(), chainWebpack: joi.function(), refreshOverlay: joi.boolean(), })); function validateProjectConfig(options, cb) { cli_shared_utils_1.validate(options, schema, { allowUnknown: true }, cb); } exports.validateProjectConfig = validateProjectConfig; const defaultsProjectConfig = { publicPath: "/", outputDir: "dist", assetsDir: { scripts: "scripts", styles: "styles", images: "images", fonts: "fonts", media: "media", }, indexPath: "index.html", templatePath: "index.html", productionSourceMap: false, assetsLimit: 4096, alias: {}, refreshOverlay: true, }; function mergeProjectOptions(projectOptions, rootOptions) { const isProduction = process.env.NODE_ENV === "production"; return lodash_defaultsdeep_1.default(projectOptions, Object.assign(Object.assign({}, defaultsProjectConfig), { css: { sourceMap: !isProduction, loaderOptions: { css: {}, less: {}, miniCss: {}, }, }, mock: rootOptions.fetch || false, ssr: false, configureWebpack: () => undefined, chainWebpack: () => undefined })); } exports.mergeProjectOptions = mergeProjectOptions; //# sourceMappingURL=options.js.map