Skip to content

Commit 879a464

Browse files
committed
feat: format print info
1 parent f88c2aa commit 879a464

File tree

3 files changed

+79
-23
lines changed

3 files changed

+79
-23
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@
3939
npm create uni <项目名称> --ts -m pinia -m uniUse -u ano -e
4040
```
4141

42+
```shell
43+
npm create uni --info
44+
# --info 获取当前项目环境信息
45+
```
46+
4247
### 参数说明
4348

4449
| 配置项 | 参数 | 别名 | 可选值 |
@@ -49,6 +54,7 @@ npm create uni <项目名称> --ts -m pinia -m uniUse -u ano -e
4954
| Module | moduleList | m |[模块列表](#模块列表) |
5055
| UI | ui | u | uni/ano |
5156
| Eslint | eslint | e | —— |
57+
| info | info | —— | —— |
5258

5359
#### 📦插件列表
5460

src/commands/info/index.ts

Lines changed: 70 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ import process from 'node:process'
22
import { execSync } from 'node:child_process'
33
import { getPackageInfo } from 'local-pkg'
44
import envinfo from 'envinfo'
5-
6-
// import { link } from 'kolorist'
5+
import { gray, link } from 'kolorist'
76
import { ora } from '../../utils'
87
import { question } from './question'
98

@@ -63,14 +62,24 @@ async function getVSCodeInfo() {
6362
}
6463

6564
function getVSCodeExtensions(path: string) {
66-
const list = execSync(`${path} --list-extensions --show-versions`)
65+
let list
66+
try {
67+
list = execSync(`code --list-extensions --show-versions`)
68+
}
69+
catch (error) {
70+
list = execSync(`${path} --list-extensions --show-versions`)
71+
}
6772
return list.toString().split(/\r?\n/).filter(line => line.trim() !== '')
6873
}
6974

7075
function getUniHelperExtensions(extensions: string[]) {
7176
return extensions.filter(item => item.includes('uni-helper.') || item.includes('mrmaoddxxaa.create-uniapp-view'))
7277
}
7378

79+
function getVolarExtensions(extensions: string[]) {
80+
return extensions.filter(item => item.includes('vue.volar'))
81+
}
82+
7483
function paserExtensionList(list: string[]) {
7584
return list.map((item) => {
7685
const [name_, version] = item.split('@')
@@ -85,18 +94,22 @@ async function getErrorExtensions() {
8594
const { path } = (await getVSCodeInfo())!
8695
const extensions = getVSCodeExtensions(path)
8796
const uniHelperExtensions = paserExtensionList(getUniHelperExtensions(extensions))
97+
const volarExtensions = paserExtensionList(getVolarExtensions(extensions))
8898
const choices = uniHelperExtensions.map(item => item.name)
8999
loading.finish()
90100

91101
const { errorIndexList } = await question(choices, '请选择需要反馈的vscode插件')
92102

93-
return errorIndexList.map((index: number) => {
94-
return {
95-
name: uniHelperExtensions[index].name,
96-
version: uniHelperExtensions[index].version,
97-
bugs: uniHelperExtensions[index].bugs,
98-
}
99-
})
103+
return {
104+
errorExtensions: errorIndexList.map((index: number) => {
105+
return {
106+
name: uniHelperExtensions[index].name,
107+
version: uniHelperExtensions[index].version,
108+
bugs: uniHelperExtensions[index].bugs,
109+
}
110+
}),
111+
volarExtensions,
112+
}
100113
}
101114

102115
export async function getBaseEnvInfo() {
@@ -112,21 +125,56 @@ export async function getBaseEnvInfo() {
112125

113126
export async function getUniAppInfo() {
114127
const errorDependencies = await getErrorDependencies()
115-
const errorExtensions = await getErrorExtensions()
128+
const { errorExtensions, volarExtensions } = await getErrorExtensions()
116129
const baseEnvInfo = await getBaseEnvInfo()
117130
const baseDependencies = await getBaseDependencies()
118-
console.log('\n')
131+
const splitter = '----------------------------------------------'
132+
133+
let baseEnvInfoStr = ''
134+
for (const [key, value] of Object.entries(baseEnvInfo))
135+
baseEnvInfoStr += `- ${key}: \`${value}\`\n`
136+
for (const { name, version } of volarExtensions)
137+
baseEnvInfoStr += `- ${name}: \`${version}\`\n`
138+
139+
let baseDependenciesStr = ''
140+
for (const { name, version } of baseDependencies)
141+
baseDependenciesStr += `- ${name}: \`${version}\`\n`
142+
143+
let errorDependenciesStr = ''
144+
for (const { name, version, bugs } of errorDependencies)
145+
errorDependenciesStr += `- ${link(name, bugs!)}: \`${version}\`\n`
146+
147+
let errorExtensionsStr = ''
148+
for (const { name, version, bugs } of errorExtensions)
149+
errorExtensionsStr += `- ${link(name, bugs)}: \`${version}\`\n`
150+
151+
console.log(splitter)
152+
console.log()
119153
console.log('基础环境信息:')
120-
console.table(baseEnvInfo)
121-
console.log('\n')
154+
console.table(baseEnvInfoStr)
155+
122156
console.log('基础依赖信息:')
123-
console.table(baseDependencies)
124-
console.log('\n')
125-
console.log('uni-helper依赖信息:')
126-
console.table(errorDependencies)
127-
console.log('\n')
128-
console.log('uni-helper插件信息:')
129-
console.table(errorExtensions)
130-
console.log('\n')
157+
console.log(baseDependenciesStr)
158+
159+
if (errorDependencies.length > 0) {
160+
console.log('uni-helper依赖信息:')
161+
console.log(errorDependenciesStr)
162+
}
163+
164+
if (errorExtensions.length > 0) {
165+
console.log('uni-helper插件信息:')
166+
console.log(errorExtensionsStr)
167+
}
168+
169+
console.log(splitter)
170+
171+
console.log(
172+
`${[
173+
gray('感谢使用uni-helper,请提供以上信息以便我们排查问题。'),
174+
'👉 uni-help官网: https://uni-helper.js.org/',
175+
'👉 改进建议: https://github.com/uni-helper/create-uni/issues/new/choose',
176+
].join('\n')}\n`,
177+
)
178+
131179
process.exit(0)
132180
}

src/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
import { join, resolve } from 'node:path'
1313
import process from 'node:process'
1414
import ejs from 'ejs'
15-
import { bold, red } from 'kolorist'
15+
import { bold, green, red } from 'kolorist'
1616
import minimist from 'minimist'
1717
import prompts from 'prompts'
1818
import figures from 'prompts/lib/util/figures.js'
@@ -253,5 +253,7 @@ async function init() {
253253

254254
init().catch(() => {
255255
console.log(`${red(figures.cross)} ${bold('操作已取消')}`)
256+
console.log()
257+
console.log(`🚀 遇到问题? 快速反馈:${green('https://github.com/uni-helper/create-uni/issues/new/choose')}`)
256258
process.exit(0)
257259
})

0 commit comments

Comments
 (0)