@@ -65,14 +65,26 @@ function readPackage (id, context) {
65
65
return folders . readPackage ( getPath ( id ) , context )
66
66
}
67
67
68
- async function getMetadata ( id ) {
68
+ async function getMetadata ( id , context ) {
69
69
let metadata = metadataCache . get ( id )
70
70
if ( metadata ) {
71
71
return metadata
72
72
}
73
- const res = await getPackageVersion ( id )
74
- if ( res . statusCode === 200 ) {
75
- metadata = res . body
73
+ if ( isOfficialPlugin ( id ) ) {
74
+ const res = await getPackageVersion ( 'vue-cli-version-marker' , 'latest' )
75
+ if ( res . statusCode === 200 ) {
76
+ metadata = res . body
77
+ }
78
+ const pkg = folders . readPackage ( path . dirname ( require . resolve ( id ) ) , context )
79
+ metadata . description = pkg . description
80
+ } else {
81
+ const res = await getPackageVersion ( id , id . indexOf ( '@' ) === - 1 ? 'latest' : '' )
82
+ if ( res . statusCode === 200 ) {
83
+ metadata = res . body
84
+ }
85
+ }
86
+
87
+ if ( metadata ) {
76
88
metadataCache . set ( id , metadata )
77
89
return metadata
78
90
}
@@ -87,9 +99,9 @@ async function getVersion ({ id, installed, versionRange }, context) {
87
99
current = null
88
100
}
89
101
let latest
90
- const metadata = await getMetadata ( id )
102
+ const metadata = await getMetadata ( id , context )
91
103
if ( metadata ) {
92
- latest = metadata [ 'dist-tags' ] . latest
104
+ latest = ( metadata [ 'dist-tags' ] && metadata [ 'dist-tags' ] . latest ) || metadata . version
93
105
}
94
106
95
107
if ( ! latest ) {
@@ -105,7 +117,7 @@ async function getVersion ({ id, installed, versionRange }, context) {
105
117
}
106
118
107
119
async function getDescription ( { id } , context ) {
108
- const metadata = await getMetadata ( id )
120
+ const metadata = await getMetadata ( id , context )
109
121
if ( metadata ) {
110
122
return metadata . description
111
123
}
0 commit comments