mirror of
https://github.com/zuiidea/antd-admin.git
synced 2024-04-21 12:32:14 +00:00
83 lines
1.9 KiB
JavaScript
83 lines
1.9 KiB
JavaScript
const fs = require('fs')
|
|
const path = require('path')
|
|
const beautify = require('js-beautify').js_beautify
|
|
const config = require('./package.json')
|
|
|
|
const dist = path.join(`${__dirname}/dist`)
|
|
const maxVersion = 5
|
|
|
|
const writeVersion = () => new Promise((resolve, reject) => {
|
|
const { version } = config
|
|
const numbers = version.split('.')
|
|
numbers[2] = Number(numbers[2]) + 1
|
|
config.version = numbers.join('.')
|
|
|
|
fs.writeFile(path.join(__dirname, 'package.json'), beautify(JSON.stringify(config), { indent_size: 2 }), (err) => {
|
|
if (err) {
|
|
reject()
|
|
}
|
|
resolve()
|
|
console.log(`version: ${config.version}`)
|
|
})
|
|
})
|
|
|
|
const removeFolder = (folderPath) => {
|
|
let files = []
|
|
if (fs.existsSync(folderPath)) {
|
|
files = fs.readdirSync(folderPath)
|
|
files.forEach((file) => {
|
|
const curPath = `${folderPath}/${file}`
|
|
if (fs.statSync(curPath).isDirectory()) {
|
|
removeFolder(curPath)
|
|
} else {
|
|
fs.unlinkSync(curPath)
|
|
}
|
|
})
|
|
fs.rmdirSync(folderPath)
|
|
}
|
|
}
|
|
|
|
const start = async () => {
|
|
const files = fs.readdirSync(dist)
|
|
const promises = files.map(file => new Promise((resolve, reject) => {
|
|
fs.stat(`${dist}/${file}`, (err, stats) => {
|
|
if (err) {
|
|
reject()
|
|
} else {
|
|
resolve(!stats.isFile()
|
|
? file
|
|
: null)
|
|
}
|
|
})
|
|
}))
|
|
|
|
const result = await Promise.all(promises)
|
|
|
|
const folders = result.filter((item) => {
|
|
if (item) {
|
|
return item.split('.').length === 3
|
|
}
|
|
return false
|
|
}).sort((a, b) => {
|
|
const an = a.split('.').map(_ => Number(_))
|
|
const bn = b.split('.').map(_ => Number(_))
|
|
if (an[0] === bn[0]) {
|
|
if (an[1] === bn[1]) {
|
|
return an[2] < bn[2]
|
|
}
|
|
return an[1] < bn[1]
|
|
}
|
|
return an[0] < bn[0]
|
|
}).filter((item, index) => {
|
|
return index > (maxVersion - 1)
|
|
})
|
|
|
|
for (const item of folders) {
|
|
await removeFolder(`${dist}/${item}`)
|
|
}
|
|
|
|
await writeVersion()
|
|
}
|
|
|
|
start()
|