@@ -113,7 +113,7 @@ function resolveInstalledPro(projectRoot) {
113113}
114114
115115function readProjectPackageJson ( projectRoot ) {
116- const packageJsonPath = path . join ( projectRoot , 'package.json' ) ;
116+ const packageJsonPath = path . join ( path . resolve ( projectRoot ) , 'package.json' ) ;
117117 if ( ! fs . existsSync ( packageJsonPath ) ) {
118118 return null ;
119119 }
@@ -126,12 +126,14 @@ function readProjectPackageJson(projectRoot) {
126126}
127127
128128function buildNodeModulesPackageJsonPath ( projectRoot , packageName ) {
129+ const resolvedProjectRoot = path . resolve ( projectRoot ) ;
130+
129131 if ( packageName . startsWith ( '@' ) ) {
130132 const [ scope , name ] = packageName . slice ( 1 ) . split ( '/' ) ;
131- return path . join ( projectRoot , 'node_modules' , scope , name , 'package.json' ) ;
133+ return path . join ( resolvedProjectRoot , 'node_modules' , scope , name , 'package.json' ) ;
132134 }
133135
134- return path . join ( projectRoot , 'node_modules' , packageName , 'package.json' ) ;
136+ return path . join ( resolvedProjectRoot , 'node_modules' , packageName , 'package.json' ) ;
135137}
136138
137139function detectCorePackageName ( projectRoot ) {
@@ -187,7 +189,8 @@ function assertValidProjectRoot(projectRoot) {
187189 * @returns {string|null }
188190 */
189191function getCoreVersion ( projectRoot ) {
190- const versionJsonPath = path . join ( projectRoot , '.aiox-core' , 'version.json' ) ;
192+ const resolvedProjectRoot = path . resolve ( projectRoot ) ;
193+ const versionJsonPath = path . join ( resolvedProjectRoot , '.aiox-core' , 'version.json' ) ;
191194 if ( fs . existsSync ( versionJsonPath ) ) {
192195 try {
193196 const versionInfo = JSON . parse ( fs . readFileSync ( versionJsonPath , 'utf8' ) ) ;
@@ -200,7 +203,7 @@ function getCoreVersion(projectRoot) {
200203 }
201204
202205 for ( const packageName of CORE_PACKAGES ) {
203- const packageJsonPath = buildNodeModulesPackageJsonPath ( projectRoot , packageName ) ;
206+ const packageJsonPath = buildNodeModulesPackageJsonPath ( resolvedProjectRoot , packageName ) ;
204207 if ( fs . existsSync ( packageJsonPath ) ) {
205208 try {
206209 const data = JSON . parse ( fs . readFileSync ( packageJsonPath , 'utf8' ) ) ;
@@ -211,13 +214,13 @@ function getCoreVersion(projectRoot) {
211214 }
212215 }
213216
214- const projectPackageJson = readProjectPackageJson ( projectRoot ) ;
217+ const projectPackageJson = readProjectPackageJson ( resolvedProjectRoot ) ;
215218 if ( projectPackageJson ) {
216219 if ( CORE_PACKAGES . includes ( projectPackageJson . name ) ) {
217220 return projectPackageJson . version || null ;
218221 }
219222
220- const declaredCorePackage = detectCorePackageName ( projectRoot ) ;
223+ const declaredCorePackage = detectCorePackageName ( resolvedProjectRoot ) ;
221224 if ( declaredCorePackage ) {
222225 for ( const field of DEPENDENCY_FIELDS ) {
223226 const declaredVersion = projectPackageJson [ field ] ?. [ declaredCorePackage ] ;
0 commit comments