nodejs / snap

Node.js snap source and updater
MIT License
166 stars 38 forks source link

Odd behaviour with Cordova plugin add operation using node snap #55

Open dlbeswick opened 1 year ago

dlbeswick commented 1 year ago

Hello all, I have raised this issue with the Cordova maintainers here: https://github.com/apache/cordova/issues/423

But, I suspect it's actually an issue with the snap as the problematic command works fine using an nvm install.

To repro this issue:

  1. mkdir test
  2. cd test
  3. npm install cordova
  4. npx cordova create test org.test test
  5. npx cordova plugin add cordova-plugin-device

Expected:

The Cordova plugin is installed and Cordova reports Adding cordova-plugin-device to package.json

Actual:

The message Unexpected end of JSON input is returned and no plugin is added.

The cause is that no stdout seems to be received from the shell call (via the execa package) that Cordova makes to npm. exec returns a successful zero error code. In addition, modifying the shell call to operate via bash shell redirection does yield some output, along with some additional error information. Please see the linked issue for more details and please do let me know if you need any more information.

dlbeswick commented 1 year ago

The actual shell command that Cordova is running is: npm view cordova-plugin-device@2.1.0 --json.

This command does actually work fine when run from the shell, just not via the call to execa.

dlbeswick commented 1 year ago

Apologies, I've just realised that this issue happens with the 18/stable snap, but it works fine with 20/stable.