@@ -2,8 +2,7 @@ import process from 'node:process'
2
2
import { execSync } from 'node:child_process'
3
3
import { getPackageInfo } from 'local-pkg'
4
4
import envinfo from 'envinfo'
5
-
6
- // import { link } from 'kolorist'
5
+ import { gray , link } from 'kolorist'
7
6
import { ora } from '../../utils'
8
7
import { question } from './question'
9
8
@@ -63,14 +62,24 @@ async function getVSCodeInfo() {
63
62
}
64
63
65
64
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
+ }
67
72
return list . toString ( ) . split ( / \r ? \n / ) . filter ( line => line . trim ( ) !== '' )
68
73
}
69
74
70
75
function getUniHelperExtensions ( extensions : string [ ] ) {
71
76
return extensions . filter ( item => item . includes ( 'uni-helper.' ) || item . includes ( 'mrmaoddxxaa.create-uniapp-view' ) )
72
77
}
73
78
79
+ function getVolarExtensions ( extensions : string [ ] ) {
80
+ return extensions . filter ( item => item . includes ( 'vue.volar' ) )
81
+ }
82
+
74
83
function paserExtensionList ( list : string [ ] ) {
75
84
return list . map ( ( item ) => {
76
85
const [ name_ , version ] = item . split ( '@' )
@@ -85,18 +94,22 @@ async function getErrorExtensions() {
85
94
const { path } = ( await getVSCodeInfo ( ) ) !
86
95
const extensions = getVSCodeExtensions ( path )
87
96
const uniHelperExtensions = paserExtensionList ( getUniHelperExtensions ( extensions ) )
97
+ const volarExtensions = paserExtensionList ( getVolarExtensions ( extensions ) )
88
98
const choices = uniHelperExtensions . map ( item => item . name )
89
99
loading . finish ( )
90
100
91
101
const { errorIndexList } = await question ( choices , '请选择需要反馈的vscode插件' )
92
102
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
+ }
100
113
}
101
114
102
115
export async function getBaseEnvInfo ( ) {
@@ -112,21 +125,56 @@ export async function getBaseEnvInfo() {
112
125
113
126
export async function getUniAppInfo ( ) {
114
127
const errorDependencies = await getErrorDependencies ( )
115
- const errorExtensions = await getErrorExtensions ( )
128
+ const { errorExtensions, volarExtensions } = await getErrorExtensions ( )
116
129
const baseEnvInfo = await getBaseEnvInfo ( )
117
130
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 ( )
119
153
console . log ( '基础环境信息:' )
120
- console . table ( baseEnvInfo )
121
- console . log ( '\n' )
154
+ console . table ( baseEnvInfoStr )
155
+
122
156
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
+
131
179
process . exit ( 0 )
132
180
}
0 commit comments