import chalk from "chalk" import _ from "lodash" import rimraf from "rimraf" import fs from "fs-extra" import * as util from "./util" import buildComponent from "./buildComponent" import buildAll from "./buildAll" import { getOutput, getPath, getPkgs } from "@princess-ui/share" import * as dts from "dts-bundle" import pkg from "../princess-ui/package.json" console.log(chalk.yellow(`当前工作目录:${process.cwd()}`)) const oldCwdFn = process.cwd process.cwd = ()=>{ return getPkgs() } console.log(chalk.yellow(`修改后工作目录:${process.cwd()}`)) console.log(chalk.yellow("正在清除lib文件夹")) rimraf(getOutput("lib"), async err => { if (err) throw err console.log(chalk.green("已清除lib文件夹")) const components = await util.getComponents() for (let i = 0; i < components.length; i++) { const component = components[i] const beginDate = new Date().getTime() console.log(chalk.yellow(`开始构建${component}组件`)) await buildComponent("ps", component, "ps" + _.upperFirst(_.kebabCase(component))) console.log(chalk.green(`构建${component}组件完成, 其耗时:${(new Date().getTime() - beginDate) / 1000}s`)) } const beginDate = new Date().getTime() console.log(chalk.yellow("构建组件结构")) await util.generateComponents(components) console.log(chalk.green("构建组件结构完成")) console.log(chalk.yellow("构建全量包")) await buildAll("ps") console.log(chalk.green(`构建全量包完成, 其耗时:${(new Date().getTime() - beginDate) / 1000}s`)) console.log(chalk.red("构建完成,开始生成d.ts")) // const dtsOptions = { // name: pkg.name, // main: `princess-ui/lib/packages/all.d.ts`, // out: `../index.d.ts`, // outputAsModuleFolder: true // } // dts.bundle(dtsOptions) // console.log(chalk.red("生成完毕,开始清理残余")) fs.moveSync(getOutput("lib/components/components.d.ts"), getOutput("lib/components.d.ts"), { overwrite: true }) fs.moveSync(getOutput("lib/all.d.ts"), getOutput("lib/index.d.ts"), { overwrite: true }) rimraf.sync(getOutput('lib/components')) // fs.moveSync(getOutput("lib/packages/components/components.d.ts"), getOutput("lib/components.d.ts"), { overwrite: true }) // fs.moveSync(getOutput("lib/packages/hooks"), getOutput("lib/hooks"), { overwrite: true }) // fs.moveSync(getOutput("lib/packages/all.d.ts"), getOutput("lib/index.d.ts"), { overwrite: true }) // rimraf.sync(getOutput('lib/packages')) // console.log(chalk.green("残余清理完毕")) console.log(chalk.green("d.ts生成完毕")) process.cwd = oldCwdFn console.log(chalk.yellow(`工作目录重置为:${process.cwd()}`)) })