diff --git a/package.json b/package.json index a01065a93..1b9411aea 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,8 @@ "docs:dev": "vitepress dev docs", "docs:build": "vitepress build docs", "docs:preview": "vitepress preview docs", - "postinstall": "simple-git-hooks" + "postinstall": "simple-git-hooks", + "release": "node scripts/release.js" }, "devDependencies": { "@rollup/plugin-typescript": "^10.0.1", diff --git a/scripts/release.js b/scripts/release.js new file mode 100644 index 000000000..03511c28c --- /dev/null +++ b/scripts/release.js @@ -0,0 +1,23 @@ +import { execSync } from 'child_process' +import fs from 'fs' +import path from 'path' + +const pkgPath = path.resolve('package.json') + +// 缓存项目package.json +const sourcePkg = fs.readFileSync(pkgPath, 'utf-8') + +// 删除无用属性 +const targetPkg = JSON.parse(sourcePkg) +Reflect.deleteProperty(targetPkg.scripts, 'postinstall') +fs.writeFileSync(pkgPath, JSON.stringify(targetPkg, null, 2)) + +// 发布包 +try { + execSync('npm publish') +} catch (error) { + throw new Error(error) +} finally { + // 还原 + fs.writeFileSync(pkgPath, sourcePkg) +}