function updatePackage()

in packages/build-plugin-lowcode/src/index.js [1193:1230]


function updatePackage(
  rootDir,
  baseUrl,
  lowcodeDir = 'lowcode',
  buildTarget = 'build',
  engineScope = '@ali',
  package,
) {
  const packageData = package;
  let { componentConfig } = packageData;
  if (!componentConfig) {
    componentConfig = {};
  }
  const isBetaVersion = packageData.version.includes('-beta');
  const _baseUrl =
    (baseUrl && (isBetaVersion ? baseUrl.daily : baseUrl.prod)) ||
    `${UNPKG_BASE_URL_MAP[engineScope]}/${packageData.name}@${packageData.version}`;
  componentConfig.materialSchema = `${_baseUrl}/${buildTarget}/${lowcodeDir}/assets-${
    isBetaVersion ? 'daily' : 'prod'
  }.json`;
  packageData.componentConfig = componentConfig;
  packageData.lcMeta = {
    ...packageData.lcMeta,
    type: 'component',
  };
  if (!package.dependencies['@babel/runtime']) {
    package.dependencies['@babel/runtime'] = '^7.0.0';
  }
  const processMainFieldForExports = (entry) => {
    if (!entry) return entry;
    return `${entry.startsWith('./') ? '' : './'}${entry}${entry.endsWith('.js') ? '' : '.js'}`
  }
  packageData.exports['.'] = {
    import: processMainFieldForExports(packageData.module) || './es/index.js',
    require: processMainFieldForExports(packageData.main) || './lib/index.js',
  }
  fse.outputFileSync(path.resolve(rootDir, 'package.json'), JSON.stringify(packageData, null, 2));
}