@@ -108,7 +108,7 @@ export interface ShareItem {
108
108
109
109
function removePathFromNpmPackage ( packageString : string ) : string | undefined {
110
110
// 匹配npm包名的正则表达式,忽略路径部分
111
- const regex = / ^ (?: @ [ ^ / ] + \/ ) ? ( ^ @ [ ^ / ] + ) / ;
111
+ const regex = / ^ (?: @ [ ^ / ] + \/ ) ? \w [ ^ / ] + / ;
112
112
113
113
// 使用正则表达式匹配并提取包名
114
114
const match = packageString . match ( regex ) ;
@@ -130,13 +130,15 @@ function normalizeShareItem(
130
130
strictVersion ?: boolean ;
131
131
}
132
132
) : ShareItem {
133
- let version : string | undefined ;
134
- const npmPackage = removePathFromNpmPackage ( key ) ;
135
- if ( npmPackage ) {
136
- try {
137
- version = require ( path . join ( npmPackage , 'package.json' ) ) . version ;
138
- } catch ( e ) {
139
- console . log ( e ) ;
133
+ let version = typeof shareItem === 'object' ? shareItem . requiredVersion : undefined ;
134
+ if ( ! version ) {
135
+ const npmPackage = removePathFromNpmPackage ( key ) ;
136
+ if ( npmPackage ) {
137
+ try {
138
+ version = `^${ require ( path . join ( npmPackage , 'package.json' ) ) . version } ` ;
139
+ } catch ( e ) {
140
+ console . log ( e ) ;
141
+ }
140
142
}
141
143
}
142
144
if ( typeof shareItem === 'string' ) {
@@ -147,7 +149,7 @@ function normalizeShareItem(
147
149
from : '' ,
148
150
shareConfig : {
149
151
singleton : false ,
150
- requiredVersion : version ? `^ ${ version } ` : '*' ,
152
+ requiredVersion : version ?? '*' ,
151
153
} ,
152
154
} ;
153
155
}
@@ -158,7 +160,7 @@ function normalizeShareItem(
158
160
scope : shareItem . shareScope || 'default' ,
159
161
shareConfig : {
160
162
singleton : shareItem . singleton || false ,
161
- requiredVersion : shareItem . requiredVersion || ( version ? `^ ${ version } ` : '*' ) ,
163
+ requiredVersion : version ?? '*' ,
162
164
strictVersion : ! ! shareItem . strictVersion ,
163
165
} ,
164
166
} ;
0 commit comments