refactor(cli): improve packageJson generate (#854)

This commit is contained in:
pengzhanbo 2026-02-15 11:33:09 +08:00 committed by GitHub
parent 6db6a58c27
commit bfd1d1692f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,5 +1,5 @@
import type { File, ResolvedData } from './types.js' import type { File, ResolvedData } from './types.js'
import { kebabCase } from '@pengzhanbo/utils' import { attemptAsync, kebabCase } from '@pengzhanbo/utils'
import spawn from 'nano-spawn' import spawn from 'nano-spawn'
import _sortPackageJson from 'sort-package-json' import _sortPackageJson from 'sort-package-json'
import { Mode } from './constants.js' import { Mode } from './constants.js'
@ -47,7 +47,7 @@ export async function createPackageJson(
pkg.description = siteDescription pkg.description = siteDescription
if (packageManager !== 'npm') { if (packageManager !== 'npm') {
let version = await getPackageManagerVersion(packageManager) let [, version] = await attemptAsync(getPackageManagerVersion, packageManager)
if (version) { if (version) {
if (packageManager === 'yarn' && version.startsWith('1')) { if (packageManager === 'yarn' && version.startsWith('1')) {
version = '4.10.3' version = '4.10.3'
@ -63,7 +63,7 @@ export async function createPackageJson(
} }
} }
const userInfo = await getUserInfo() const [, userInfo] = await attemptAsync(getUserInfo)
if (userInfo) { if (userInfo) {
pkg.author = userInfo.username + (userInfo.email ? ` <${userInfo.email}>` : '') pkg.author = userInfo.username + (userInfo.email ? ` <${userInfo.email}>` : '')
} }
@ -112,23 +112,12 @@ export async function createPackageJson(
} }
async function getUserInfo() { async function getUserInfo() {
try {
const { output: username } = await spawn('git', ['config', '--global', 'user.name']) const { output: username } = await spawn('git', ['config', '--global', 'user.name'])
const { output: email } = await spawn('git', ['config', '--global', 'user.email']) const { output: email } = await spawn('git', ['config', '--global', 'user.email'])
console.log('userInfo', username, email)
return { username, email } return { username, email }
}
catch {
return null
}
} }
async function getPackageManagerVersion(pkg: string) { async function getPackageManagerVersion(pkg: string) {
try {
const { output } = await spawn(pkg, ['--version']) const { output } = await spawn(pkg, ['--version'])
return output return output
}
catch {
return null
}
} }