[Solved?] NPM Invalid Version Error Preventing Galaxy Deployment

Hey all, hoping someone has hit the same issue. Trying to deploy to galaxy after an update of about 10 lines of code, and now seeing this:

npm ERR! Invalid version: "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"

After a little digging, I see that in the dependencies for a parent package, string_decoder has a registry link listed as the version:

"version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"

It seems like this is failing due to this block in /home/sean/.meteor/packages/meteor-tool/.1.5.0.eps2c2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/normalize-package-data/lib/fixer.js:

fixVersionField: function(data, strict) {
    // allow "loose" semver 1.0 versions in non-strict mode
    // enforce strict semver 2.0 compliance in strict mode
    var loose = !strict
    if (!data.version) {
      data.version = ""
      return true
    }
    if (!semver.valid(data.version, loose)) {
      throw new Error('Invalid version: "'+ data.version + '"')
    }
    data.version = semver.clean(data.version, loose)
    return true
  }

I’ve been using this package for a while, and done dozens of deployments successfully before this started causing the deployments to fail.

Thanks in advance for any advice!

1 Like

Update: Was able to resolve the issue by deleting my node_modules directory and running meteor npm install. The versions all seem to have updated from the registry links to the actual semver. Although I’m still confused on how this successfully built so many times previously and just started to cause issues…

1 Like