message: feat(preset-umi): more config schemas
diff: @@ -4,12 +4,14 @@ import { NpmClientEnum } from '@umijs/utils';
  export function getSchemas(): Record<string, (Joi: Root) => any> {
  return {
  base: (Joi) => Joi.string(),
  - plugins: (Joi) => Joi.array().items(Joi.string()),
  - publicPath: (Joi) =>
  - Joi.string().regex(/\/$/).error(new Error('publicPath must end with /')),
  favicon: (Joi) => Joi.string(),
  - headScripts: (Joi) => Joi.array().items(Joi.alternatives(Joi.string())),
  - scripts: (Joi) => Joi.array().items(Joi.alternatives(Joi.string())),
  + headScripts: (Joi) => Joi.array(),
  + history: (Joi) =>
  + Joi.object({
  + type: Joi.string().valid('browser', 'hash', 'memory'),
  + }),
  + links: (Joi) => Joi.array(),
  + metas: (Joi) => Joi.array(),
  mountElementId: (Joi) => Joi.string(),
  npmClient: (Joi) =>
  Joi.string().valid(
  @@ -19,10 +21,11 @@ export function getSchemas(): Record<string, (Joi: Root) => any> {
  NpmClientEnum.yarn,
  NpmClientEnum.npm,
  ),
  + plugins: (Joi) => Joi.array().items(Joi.string()),
  + publicPath: (Joi) =>
  + Joi.string().regex(/\/$/).error(new Error('publicPath must end with /')),
  routes: (Joi) => Joi.array().items(Joi.object()),
  - history: (Joi) =>
  - Joi.object({
  - type: Joi.string().valid('browser', 'hash', 'memory'),
  - }),
  + scripts: (Joi) => Joi.array(),
  + styles: (Joi) => Joi.array(),
  };
  }
  