.fatherrc.js 1.43 KB
Newer Older
dengxiaofeng's avatar
dengxiaofeng committed
1 2 3 4
import { readdirSync } from 'fs';
import { join } from 'path';

// utils must build before core
邓晓峰's avatar
邓晓峰 committed
5
const headPkgs = [
6 7 8 9 10 11 12 13
  // 'DeviceTree',
  // 'Empty',
  // 'HistoryInfo',
  // 'ImageSelect',
  // 'MqttView',
  // 'QuotaSelect',
  // 'RealTimeInfo',
  // 'TimeRangePicker',
14
  // 'AlarmScrollAssembly',
邓晓峰's avatar
邓晓峰 committed
15
];
16 17 18 19 20 21 22 23 24 25 26
const pkgList = ['base-components', 'extend-components']
  .map((dir) => {
    const list = readdirSync(join(__dirname, 'packages', dir)).map((item) => `${item}!${dir}`);
    return list;
  })
  .flat();

const tailPkgs = pkgList
  .filter((pkg) => pkg.charAt(0) !== '.' && !headPkgs.includes(pkg))
  .map((item) => {
    const [name, path] = item.split('!');
李纪文's avatar
李纪文 committed
27 28
    // return `${path}/${name}`;
    return `${name}`;
29
  });
dengxiaofeng's avatar
dengxiaofeng committed
30

31 32 33 34 35 36 37 38 39 40
const type = process.env.BUILD_TYPE;
let config = {};

if (type === 'lib') {
  config = {
    cjs: { type: 'babel', lazy: true },
    esm: false,
    runtimeHelpers: true,
    pkgs: [...headPkgs, ...tailPkgs],
    extraBabelPlugins: [
邓晓峰's avatar
邓晓峰 committed
41 42 43 44 45
      [
        'babel-plugin-import',
        { libraryName: 'antd', libraryDirectory: 'lib', style: true },
        'antd',
      ],
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
    ],
  };
}

if (type === 'es') {
  config = {
    cjs: false,
    esm: {
      type: 'babel',
    },
    runtimeHelpers: true,
    pkgs: [...headPkgs, ...tailPkgs],
    extraBabelPlugins: [
      [require('./scripts/replaceLib')],
      ['babel-plugin-import', { libraryName: 'antd', libraryDirectory: 'es', style: true }, 'antd'],
    ],
  };
}

export default config;