@bxjs/base
Version:
bxjs base framework & api
31 lines (25 loc) • 1.32 kB
text/typescript
require('source-map-support').install()
const path = require('path')
const fse = require('fs-extra')
import './error'
import './framework/base'
// 将配置参数写入到package.json中,将发布脚本封装到npm框架包中对应用透明。
// 通过package.json中的配置信息将其转换为config.sh脚本方便shell中加载使用实现shell与nodejs交互
let package_json_file_path = path.join(__dirname, './package.json')
let package_lock_json_file_path = path.join(__dirname, './package-lock.json')
// 必须确保package.json和package-lock.json同时存在保持版本一致性
xassert(fse.existsSync(package_json_file_path))
xassert(fse.existsSync(package_lock_json_file_path))
function upgrade_patch_version(file_path: string): string {
let cfg = fse.readJsonSync(file_path)
xassert(cfg && cfg.version && /(\d+)\.(\d+)\.(\d+)/.test(cfg.version))
let list: any = /(\d+)\.(\d+)\.(\d+)/.exec(cfg.version)
cfg.version = `${list[1]}.${list[2]}.${parseInt(list[3]) + 1}`
fse.writeJSONSync(file_path, cfg, {spaces: 2})
return cfg.version
}
// 保持事务更新一致性
const v1 = upgrade_patch_version(package_json_file_path)
const v2 = upgrade_patch_version(package_lock_json_file_path)
xassert(v1 === v2)
fse.writeFileSync(path.join(__dirname, './__version__'), v1 + '\r\n')