From 89a564c2dd0212f4ffad8edf8d14a110201e519a Mon Sep 17 00:00:00 2001 From: aixianling Date: Thu, 17 Feb 2022 16:27:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=BB=9F=E4=B8=80=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E5=A4=9A=E5=8C=85=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project/allProject.js | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/project/allProject.js b/project/allProject.js index a782120b..8fad8b4a 100644 --- a/project/allProject.js +++ b/project/allProject.js @@ -2,6 +2,7 @@ const fsExtra = require('fs-extra') const path = require('path') const chalk = require('chalk') const fs = require('fs') +const {exec} = require("child_process"); /** * 将函数封装成promise */ @@ -112,14 +113,13 @@ const generateMain = project => { } }) }) - return new Promise(resolve => { - Promise.all([getCores, getApps]).then(() => { - chalkTag.info(project + '正在生成打包文件...') - let bin = path.join(__dirname, project.toString(), 'index.js'), - coreApps = cores.map(e => `{name:'${e.name}',component:require('../../${e.component}').default}`), - bizApps = apps.map(e => `{name:'${e.name}',component:require('../../${e.component}').default}`), - comps = [...coreApps, ...bizApps], - content = ` + return Promise.all([getCores, getApps]).then(() => new Promise(resolve => { + chalkTag.info(project + '正在生成打包文件...') + let bin = path.join(__dirname, project.toString(), 'index.js'), + coreApps = cores.map(e => `{name:'${e.name}',component:require('../../${e.component}').default}`), + bizApps = apps.map(e => `{name:'${e.name}',component:require('../../${e.component}').default}`), + comps = [...coreApps, ...bizApps], + content = ` const apps = [${comps.toString()}] const install = function (Vue) { if (install.installed) return Promise.resolve() @@ -151,14 +151,26 @@ const generateMain = project => { install } ` - fsExtra.outputFile(bin, content, err => { - if (err) chalkTag.error(err) - else chalkTag.done(project + '生成打包文件') - resolve() + fsExtra.outputFile(bin, content, err => { + if (err) chalkTag.error(err) + else chalkTag.done(project + '生成打包文件') + resolve() + }) + })).then(() => { + fsExtra.readJson(path.join(__dirname, project.toString(), 'package.json'), (err, json) => { + let cmd = `vue-cli-service build --target lib --dest project/${project}/dist project/${project}/index.js --name ${json.name}` + chalkTag.info(project + '正在压缩文件中...') + exec(cmd, { + cwd: path.join(__dirname, '..') + }, (err) => { + if (!err) { + chalkTag.done(project + '打包成功!') + } else { + chalkTag.error(err) + } }) }) }) - } const start = () => { //询问打包哪个项目