优化打包脚本

This commit is contained in:
aixianling
2022-05-05 15:16:28 +08:00
parent 890cbaa0b9
commit 92516a7753

View File

@@ -50,8 +50,6 @@ const start = () => {
}])
}).then(res => new Promise(resolve => {
const {PROJECT} = res
let install = path.join(__dirname, PROJECT, 'index.js')
fsExtra.ensureFile(install)
const coreLib = path.join(__dirname, PROJECT, 'core.import.json')
fsExtra.readJson(coreLib, (err, data) => {
chalkTag.info("加载核心库配置..")
@@ -94,6 +92,7 @@ const start = () => {
name: "CONFIRM",
type: 'confirm',
message: "未读取到业务应用配置文件,是否要打包整个packages?",
default: false
}]).then(res => {
if (res.CONFIRM) {
findApp(appDir, file => {
@@ -115,11 +114,12 @@ const start = () => {
})
})).then(prj => new Promise(resolve => {
if (prj == 'dvui') {
return resolve(prj)
}
resolve(prj)
} else {
chalkTag.info('正在生成打包文件...')
let bin = path.join(__dirname, prj.toString(), 'index.js'),
coreApps = cores.map(e => `{name:'${e.name}',component:require('../../${e.component}').default}`),
let install = path.join(__dirname, PROJECT, 'index.js')
fsExtra.ensureFile(install)
let 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 = `
@@ -154,13 +154,14 @@ const start = () => {
install
}
`
fsExtra.outputFile(bin, content, err => {
fsExtra.outputFile(install, content, err => {
if (err) {
chalkTag.error(err)
reject()
} else chalkTag.done('生成打包文件')
resolve(prj)
})
}
})).then(project => new Promise((resolve, reject) => {
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}/${project == 'dvui' ? 'entries' : 'index'}.js --name ${json.name}`
@@ -171,18 +172,18 @@ const start = () => {
log(stdout);
if (!err) {
chalkTag.done('打包成功!')
resolve(project)
resolve({project, name: json.name})
} else {
chalkTag.error(err)
reject()
}
})
})
})).then(project => {
})).then((prj) => {
chalkTag.info('正在发布中...')
let cmd = `cd ${project}&npm unpublish --force&npm publish`
let cmd = `npm unpublish ${prj.name} --force&npm publish --workspace project/${prj.project}`
exec(cmd, {
cwd: path.join(__dirname, '.')
cwd: path.join(__dirname, '..')
}, (err, stdout) => {
log(stdout);
if (!err) {