Skip to content

Commit e0bbf1b

Browse files
committed
fix: runtime versions with a range
1 parent 58a0e60 commit e0bbf1b

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

lib/services/project-data-service.ts

+16-4
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import { IDictionary, IFileSystem, IProjectDir } from "../common/declarations";
3333
import * as _ from "lodash";
3434
import { IInjector } from "../common/definitions/yok";
3535
import { injector } from "../common/yok";
36+
import * as semver from "semver";
3637

3738
interface IProjectFileData {
3839
projectData: any;
@@ -615,9 +616,12 @@ export class ProjectDataService implements IProjectDataService {
615616
});
616617

617618
if (runtimePackage) {
618-
// in case we are using a local tgz for the runtime
619-
//
620-
if (runtimePackage.version.includes("tgz")) {
619+
const isRange =
620+
semver.coerce(runtimePackage.version).version !==
621+
runtimePackage.version;
622+
623+
// in case we are using a local tgz for the runtime or a range like ~8.0.0, ^8.0.0 etc.
624+
if (runtimePackage.version.includes("tgz") || isRange) {
621625
try {
622626
const runtimePackageJsonPath = require.resolve(
623627
`${runtimePackage.name}/package.json`,
@@ -629,7 +633,15 @@ export class ProjectDataService implements IProjectDataService {
629633
runtimePackageJsonPath
630634
).version;
631635
} catch (err) {
632-
runtimePackage.version = null;
636+
if (isRange) {
637+
runtimePackage.version = semver.coerce(
638+
runtimePackage.version
639+
).version;
640+
641+
(runtimePackage as any)._coerced = true;
642+
} else {
643+
runtimePackage.version = null;
644+
}
633645
}
634646
}
635647

0 commit comments

Comments
 (0)