import path from 'path' import merge from 'lodash/merge' import pick from 'lodash/pick' import { PackageJson } from 'type-fest' import { ConeComponentConfig, ConeComponentScaffoldProps, Obj, ComponentFileProcessor, } from '../type' import { formatJson } from '../prettier' import { patchPackageJson } from '../project' export const updateComponentPackageJson: ComponentFileProcessor< PackageJson & Obj > = async ({ filepath, obj, props, pkgJsonPatch }) => { pkgJsonPatch = pkgJsonPatch || {} const { mobile, oneCode, lowcode } = props // deps const depsMap: { dependencies: PackageJson.Dependency devDependencies: PackageJson.Dependency peerDependencies: PackageJson.Dependency } = { dependencies: obj.dependencies || {}, devDependencies: obj.devDependencies || {}, peerDependencies: obj.peerDependencies || {}, } if (mobile) { Object.assign(depsMap.dependencies, { 'cn-meet-react': '^2.x', }) } else { // 脚手架默认了cn-next 所以把这里注掉了 // Object.assign(depsMap.devDependencies, { // 'cn-next': '^1.x', // }) } if (oneCode) { Object.assign(depsMap.dependencies, { 'cn-meet-react': '^2.x', }) } // lowcode if (lowcode) { Object.assign(depsMap.devDependencies, { '@ali/visualengine': '^5.4.1', '@ali/visualengine-utils': '^5.1.6', }) } const deps: string[] = [] const devDeps: string[] = [] await patchPackageJson({ obj, pkgJsonPatch, depsMap, deps, devDeps, }) return obj as Obj }