cordova-lib icon indicating copy to clipboard operation
cordova-lib copied to clipboard

Fail to add plugin with prerelease version because of "Invalid Version"

Open ath0mas opened this issue 4 years ago • 2 comments

Bug Report

Problem

What is expected to happen?

Basic cordova plugin add <plugin-name> of a plugin published on NPM with prerelease version should install without error.

What does actually happen?

Fail to add plugin because of Invalid Version: null.

Information

It works fine forcing @<exact-version> spec, or for same kind of plugin but with a release version.

Command or Code

$ cordova plugin add cordova-plugin-ns0m-media-capture
Invalid Version: null
$ cordova plugin add cordova-plugin-ns0m-file-transfer
Invalid Version: null

$ cordova plugin add cordova-plugin-ns0m-disk-space
Adding cordova-plugin-ns0m-disk-space to package.json

while npm installs are running fine, fetching 3.0.4-3, 2.0.0-2, and 1.1.0 respectively, and same for

$ cordova plugin add [email protected]
Adding cordova-plugin-ns0m-media-capture to package.json
$ cordova plugin add [email protected]
Adding cordova-plugin-ns0m-file-transfer to package.json

$ cordova plugin add [email protected]
Adding cordova-plugin-ns0m-disk-space to package.json

Environment, Platform, Device

Windows 10, Node 14 & 15, NPM 6 & 7

Version information

Cordova Packages:

    cli: 10.0.0
        common: 4.0.2
        create: 3.0.0
        lib: 10.0.0
            common: 4.0.2
            fetch: 3.0.1
            serve: 4.0.0

Checklist

  • [x] I searched for existing GitHub issues
  • [x] I updated all Cordova tooling to most recent version
  • [x] I included all the necessary information above

ath0mas avatar Feb 20 '21 10:02 ath0mas

Seems to be during cordovaDependencies resolution where latest is null (given // Filters out pre-release versions comment and that my published package only has prerelease versions).

See debug logs:

$ cordova plugin add cordova-plugin-ns0m-media-capture -d
No scripts found for hook "before_plugin_add".
No version specified for cordova-plugin-ns0m-media-capture, retrieving version from config.xml
No version for cordova-plugin-ns0m-media-capture saved in config.xml or package.json
Attempting to use npm info for cordova-plugin-ns0m-media-capture to choose a compatible release
Ignoring invalid version in cordova-plugin-ns0m-media-capture cordovaDependencies: >=1.4.4 (must be a single version <= latest or an upper bound)
Invalid Version: null
TypeError: Invalid Version: null
    at new SemVer (C:\Users\ath0mas\AppData\Roaming\npm\node_modules\cordova\node_modules\semver\classes\semver.js:19:13)
    at compare (C:\Users\ath0mas\AppData\Roaming\npm\node_modules\cordova\node_modules\semver\functions\compare.js:3:32)
    at Object.lte (C:\Users\ath0mas\AppData\Roaming\npm\node_modules\cordova\node_modules\semver\functions\lte.js:2:30)
    at Function.determinePluginVersionToFetch (C:\Users\ath0mas\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\cordova\plugin\add.js:387:59)
    at C:\Users\ath0mas\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\cordova\plugin\add.js:338:39
    at processTicksAndRejections (node:internal/process/task_queues:94:5)
$ cordova plugin add cordova-plugin-ns0m-file-transfer -d
No scripts found for hook "before_plugin_add".
No version specified for cordova-plugin-ns0m-file-transfer, retrieving version from config.xml
No version for cordova-plugin-ns0m-file-transfer saved in config.xml or package.json
Attempting to use npm info for cordova-plugin-ns0m-file-transfer to choose a compatible release
Invalid Version: null
TypeError: Invalid Version: null
    at new SemVer (C:\Users\ath0mas\AppData\Roaming\npm\node_modules\cordova\node_modules\semver\classes\semver.js:19:13)
    at compare (C:\Users\ath0mas\AppData\Roaming\npm\node_modules\cordova\node_modules\semver\functions\compare.js:3:32)
    at Object.lte (C:\Users\ath0mas\AppData\Roaming\npm\node_modules\cordova\node_modules\semver\functions\lte.js:2:30)
    at Function.determinePluginVersionToFetch (C:\Users\ath0mas\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\cordova\plugin\add.js:387:59)
    at C:\Users\ath0mas\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\cordova\plugin\add.js:338:39
    at processTicksAndRejections (node:internal/process/task_queues:94:5)
$ cordova plugin add cordova-plugin-ns0m-disk-space -d
No scripts found for hook "before_plugin_add".
No version specified for cordova-plugin-ns0m-disk-space, retrieving version from config.xml
No version for cordova-plugin-ns0m-disk-space saved in config.xml or package.json
Attempting to use npm info for cordova-plugin-ns0m-disk-space to choose a compatible release
npm info for cordova-plugin-ns0m-disk-space did not contain any engine info. Fetching latest release
Calling plugman.fetch on plugin "cordova-plugin-ns0m-disk-space"
fetch: Installing cordova-plugin-ns0m-disk-space to C:\Users\ath0mas\Desktop\hellocdv
Running command: npm install cordova-plugin-ns0m-disk-space --save-dev
Command finished with error code 0: npm install,cordova-plugin-ns0m-disk-space,--save-dev
Copying plugin "C:\Users\ath0mas\Desktop\hellocdv\node_modules\cordova-plugin-ns0m-disk-space" => "C:\Users\ath0mas\Desktop\hellocdv\plugins\cordova-plugin-ns0m-disk-space"
Adding cordova-plugin-ns0m-disk-space to package.json
No scripts found for hook "after_plugin_add".

vs.

$ cordova plugin add [email protected] -d
No scripts found for hook "before_plugin_add".
Calling plugman.fetch on plugin "[email protected]"
fetch: Installing [email protected] to C:\Users\ath0mas\Desktop\hellocdv
Running command: npm install [email protected] --save-dev
Command finished with error code 0: npm install,[email protected],--save-dev
Copying plugin "C:\Users\ath0mas\Desktop\hellocdv\node_modules\cordova-plugin-ns0m-media-capture" => "C:\Users\ath0mas\Desktop\hellocdv\plugins\cordova-plugin-ns0m-media-capture"
Adding cordova-plugin-ns0m-media-capture to package.json
No scripts found for hook "after_plugin_add".
$ cordova plugin add [email protected] -d
No scripts found for hook "before_plugin_add".
Calling plugman.fetch on plugin "[email protected]"
fetch: Installing [email protected] to C:\Users\ath0mas\Desktop\hellocdv
Running command: npm install [email protected] --save-dev
Command finished with error code 0: npm install,[email protected],--save-dev
Copying plugin "C:\Users\ath0mas\Desktop\hellocdv\node_modules\cordova-plugin-ns0m-file-transfer" => "C:\Users\ath0mas\Desktop\hellocdv\plugins\cordova-plugin-ns0m-file-transfer"
Adding cordova-plugin-ns0m-file-transfer to package.json
No scripts found for hook "after_plugin_add".
$ cordova plugin add [email protected] -d
No scripts found for hook "before_plugin_add".
Calling plugman.fetch on plugin "[email protected]"
fetch: Installing [email protected] to C:\Users\ath0mas\Desktop\hellocdv
Running command: npm install [email protected] --save-dev
Command finished with error code 0: npm install,[email protected],--save-dev
Copying plugin "C:\Users\ath0mas\Desktop\hellocdv\node_modules\cordova-plugin-ns0m-disk-space" => "C:\Users\ath0mas\Desktop\hellocdv\plugins\cordova-plugin-ns0m-disk-space"
Adding cordova-plugin-ns0m-disk-space to package.json
No scripts found for hook "after_plugin_add".

ath0mas avatar Feb 20 '21 20:02 ath0mas