const config = require('./weaconfig/weaconfig');
const path_e9 = require('./weaconfig/weapath4e9').default;
const path_e9_coms = require('./weaconfig/weapath4e9-coms').default;
const path_e9_eng = require('./weaconfig/weapath4e9-eng').default;
const argv = require('yargs').argv;

const getPath = ({ name, srcPath, runPath }, paths) => {
  if (!paths[name]) {
    console.error(`\n======
      请检查 src4js/webpack.config.js 的配置, 找不到 name 为 ${
      name} 的 APP ！！！！！\n======\n\n`);
    return;
  }
  const app = paths[name];
  const { entry, output, styleUrl } = app;
  return Object.assign(app, {
    entry: `${srcPath}${entry}`,
    output: `${runPath}${output}`,
  }, styleUrl ? { styleUrl: `${runPath}${styleUrl}` } : {});
};

// 运行模式：release打包模式，debug调试模式
//let mode = 'release';
 mode = 'debug';

// 编译模式：production发布版、development开发版
let node_env = 'production';
// node_env = 'development';

// 是否是自定义路径模式，自定义模式可以自己写完整地址
const custom = true;

if (custom) {
  // 自定义路径
      const customAppName = 'more';
  module.exports = config.create(({
 //前台调试主入口
    "index":{
        entry: "./pc/main/index.js",
        output: "D:/weaver/ecology/spa/main/index.js",
        styleUrl: "D:/weaver/ecology/spa/main/index.css"
    },
    //前台调试主入口
    "portal":{
        entry: "./pc/portal/index.js",
        output: "E:/workspace/ecology/spa/portal/index.js",
        styleUrl: "E:/workspace/ecology/spa/portal/index.css",
        outputlib: {
            library: "weaPortal",
            libraryTarget: "umd"
        }
    },
    //前台调试主入口
    "portalengine":{
        entry: "./pc4backstage/portal4engine/index.js",
        output: "E:/workspace/ecology/spa/portal/static4engine/engine.js",
        styleUrl: "E:/workspace/ecology/spa/portal/static4engine/engine.css",
        outputlib: {
            library: "weaPortalEngine",
            libraryTarget: "umd"
        }
    },  
    //前台调试主入口
    "theme":{
        entry: "./pc4mobx/portal4theme/index.js",
        output: "E:/workspace/ecology/wui/theme/ecology9/js/index-mobx.js",
        styleUrl: "E:/workspace/ecology/wui/theme/ecology9/css/index-mobx.css",
        outputlib: {
            library: "weaPortalTheme",
            libraryTarget: "umd"
        }
    },
    //前台调试主入口
      "more":{
          entry: "./pc/portal/elementmore/single.js",
          output: "E:/workspace/ecology/spa/portal/index_more.js",
          styleUrl: "E:/workspace/ecology/spa/portal/index_more.css",
      },
    //前台调试主入口
      "single":{
          entry: "./pc/portal/single.js",
          output: "E:/workspace/ecology/spa/portal/index-indie.js",
          styleUrl: "E:/workspace/ecology/spa/portal/index-indie.css",
      },
    //E9 主题
    "E9_theme_mobx": {
        entry: "./pc4mobx/portal4theme/index.js",
        output: "E:/workspace/ecology/wui/theme/ecology9/js/index-mobx.js",
        styleUrl: "E:/workspace/ecology/wui/theme/ecology9/css/index-mobx.css",
        outputlib: {
            library: "weaPortalTheme",
            libraryTarget: "umd"
        }
    },
    //正式系统打包文件
    "portal_fs":{
        entry: "./pc/portal_fs_2/index.js",
        output: "E:/workspace/ecology/spa/portal_fs/index.js",
        styleUrl: "E:/workspace/ecology/spa/portal_fs/index.css",
        outputlib: {
            library: "weaPortal",
            libraryTarget: "umd"
        }
    },
    //前台调试主入口
    "mobx_index":{
        entry: "./pc4mobx/amain/index.js",
        output: "E:/workspace/ecology/spa/main/index-mobx.js",
    },
    //引擎主入口
    "engine_index":{
        entry: "./pc4backstage/amain/index.js",
        output: "E:/workspace/ecology/spa/main/engine.js",
    },
    //SAP集成
    "sapIntegration":{
        entry: "./pc4backstage/sapIntegration/index.js",
        output: "E:/workspace/ecology/spa/sapIntegration/index.js",
        styleUrl: "E:/workspace/ecology/spa/sapIntegration/index.css",
        outputlib: {
            library: "weaSapIntegration",
            libraryTarget: "umd"
        }
    },
    //SAP集成
    "sapBrowseConfiguration":{
        entry: "./pc4backstage/sapIntegration/public/index.js",
        output: "E:/workspace/ecology/spa/sapIntegration/index_sapBrowse.js",
        styleUrl: "E:/workspace/ecology/spa/sapIntegration/index_sapBrowse.css",
        outputlib: {
            library: "weaSapIntegrationPublic",
            libraryTarget: "umd"
        }
    },
  })[customAppName], mode, node_env);
} else {
  // 已内置配置
  const pathConfig = {
    name: 'document_redux', // 查阅底部注释列表
    srcPath: '../', // 本地源码路径，src4js 上一层, 或本地 svn 绝对路径 'D:/ecology'
    runPath: 'D:/ecology/ecology9/ecology', // 打包后路径，spa wui 等上一层, 或本地绝对路径 'D:/ecology'
    mode,
  };
  argv.pubModule && (pathConfig.name = argv.pubModule);
  module.exports = config.create(getPath(
    pathConfig,
    Object.assign(path_e9, path_e9_coms, path_e9_eng)
  ), mode, node_env);
}

// ************ APP NAME ************

/* 公共组件
  antd - antd
  ecCom - E9 基础组件库
  coms_demo - 组件库 API 文档 demo 页
  coms_mobx - mobx 公共组件
  coms_redux - 前台 redux 公共组件 （即将废弃）
  coms_global - 流程单页公共文件整合包
  weaCom - 云商店应用组件库
*/

/* 前台 A -> Z
  main - 主入口
  theme - 主题
  portal - 门户
  album_redux - 相册 redux （迁移后废弃）
  blog - 微博
  blog_single - 微博单页入口
  cowork - 协作
  cowork_single - 协作单页入口
  cpt - 资产
  cpt_single - 资产单页入口
  crm - 客户
  crm_single - 客户单页入口
  document - 文档
  document_single - 文档单页入口
  document_redux - 文档 redux（迁移后废弃）
  document_redux_single - 文档 redux 单页入口（迁移后废弃）
  email - 邮件
  email_single - 邮件单页入口
  esearch - 微搜
  esearch_single - 微搜单页入口
  fna - 财务
  fnaSpecial - 财务流程
  hrm - 人力
  hrm_single - 人力单页入口
  inte - 集成
  inte_single - 集成单页入口
  meeting - 会议
  meeting_single - 会议单页入口
  odoc - 公文
  odoc_single - 公文单页入口
  prj - 项目
  prj_single - 项目单页入口
  smallApp - 小模块
  smallApp_single - 小模块单页入口
  workplan - 日程
  workplan_single - 日程单页入口
  workflow - 流程
  workflow_single - 流程单页入口
  workflow_redux - 流程 redux（迁移后废弃）
  workflow_redux_single - 流程 redux 单页入口（迁移后废弃）
*/

/* 后台
  bs_main - 主入口
  bs_theme - 门户主题
  bs_portal - 门户
  bs_cpt - 资产
  bs_crm - 客户
  bs_hrm - 人力
  bs_hrm_single - 人力单页入口
  bs_mobilemode - 移动建模
  bs_workflow - 流程
  bs_workflow_single - 流程单页入口
  bs_smallApp - 小应用
  bs_smallApp_single -  小应用单页入口
*/
