diff --git a/package.json b/package.json index 49d6079..1b227d2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "antd-admin", - "version": "4.3.0", + "version": "4.3.1", "dependencies": { "antd": "^2.11.2", "axios": "^0.16.2", @@ -12,6 +12,7 @@ "dva": "^1.2.0", "dva-loading": "^0.2.0", "ejs-loader": "^0.3.0", + "js-beautify": "^1.6.14", "jsonp": "^0.2.1", "less-vars-to-js": "^1.1.2", "lodash": "^4.17.4", @@ -50,13 +51,12 @@ "redbox-react": "^1.2.10", "roadhog": "1.0.0-beta.7" }, - "pre-commit": [ - "lint" - ], + "pre-commit": ["lint"], "scripts": { "dev": "set BROWSER=none&&set HOST=0.0.0.0&&roadhog server", "lint": "eslint --fix --ext .js src", "build": "roadhog build", - "build:dll": "roadhog buildDll" + "build:dll": "roadhog buildDll", + "build:new": "node version && roadhog build" } -} +} \ No newline at end of file diff --git a/version.js b/version.js new file mode 100644 index 0000000..e3b0276 --- /dev/null +++ b/version.js @@ -0,0 +1,74 @@ +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) => { + let 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) => { + return a < b + }).filter((item, index) => { + return index > (maxVersion - 1) + }) + + for (let item of folders) { + await removeFolder(`${dist}/${item}`) + } + + await writeVersion() +} + +start()