Description
Environment
Provide version numbers for the following components (information can be retrieved by running tns info
in your project folder or by inspecting the package.json
of the project):
- CLI: 7.0.11
- Cross-platform modules: 7.0.13
- Android Runtime: 7.0.1 (present in node_modules but
tns info
andtns doctor
say "is not installed") - iOS Runtime: N/A
- XCode Version: N/A
- Android Studio Version: 4.1.1
- Plugin(s): None
Describe the bug
Build-time error, as documented fully, along with my environment setup, here: #4451 (comment)
In a demo app made from the official NativeScript plugin seed, whenever I run tns plugin add ../../dist/packages/my-cool-plugin
on my demo app, I get the nondescript error:
Invalid Version: null
... with no stack trace. I determined that this was from the semver package, as it was in the previous issue. Here's the output of a console.trace()
a line before the thrown error:
at new SemVer (/usr/local/lib/node_modules/nativescript/node_modules/semver/classes/semver.js:22:15)
at compare (/usr/local/lib/node_modules/nativescript/node_modules/semver/functions/compare.js:3:32)
at Object.gt (/usr/local/lib/node_modules/nativescript/node_modules/semver/functions/gt.js:2:29)
at PluginsService.isPluginDataValidForPlatform (/usr/local/lib/node_modules/nativescript/lib/services/plugins-service.js:415:29)
at PluginsService.<anonymous> (/usr/local/lib/node_modules/nativescript/lib/services/plugins-service.js:66:26)
at Generator.next (<anonymous>)
at /usr/local/lib/node_modules/nativescript/lib/services/plugins-service.js:8:71
at new Promise (<anonymous>)
at __awaiter (/usr/local/lib/node_modules/nativescript/lib/services/plugins-service.js:4:12)
at action (/usr/local/lib/node_modules/nativescript/lib/services/plugins-service.js:65:83)
As I document in this comment, I think the root of the problem is that CLI can't find @nativescript/android
even though I have it installed. Thus, runtimePackage
returns { name: '@nativescript/android', version: null }
here:
To Reproduce
From a demo project in the official NativeScript plugin seed, run tns plugin add ../../dist/packages/my-cool-plugin
.
I'm not confident that it will reproduce for users with different environments to my own, however.
Expected behavior
Plugin should install successfully and no error should be thrown at all. If an error is thrown, at least a stack trace should be presented. Above all, CLI needs to be able to find @nativescript/android
when it is clearly present in node_modules
.
Sample project
Any project using the plugin seed.
Additional context