Skip to content

"Invalid Specifier" due to "+" character (build metadata) in semver  #929

@micschro

Description

@micschro

Describe the bug
The semver spec allows adding build metadata information to the semver string. The metadata information is added by appending it after a "+" character: `mylib-1.0.0+metainfo.
When such a semver occurs in the project package.json, the wmr build will throw with an "Invalid specifier" message.

To Reproduce
Add a module that uses a semver with metadata to the project:

"dependencies": {
	"mylib": "../mylib/mylib-1.0.1+foo.tgz"
},

And use it somehwere in the app:

import mylib from 'mylib'

Expected behavior
Semver with build metadata should be supported

Bug occurs with:

  • wmr or wmr start (development)
  • wmr build (production)
  • wmr serve (serve starts without yielding an error, but doesn't serve the app properly)

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser: chrome
  • Node Version: 16.13.1
  • WMR Version: 3.7.2

Additional context
Apparently, wmr uses a regex to match the semver parts. This regex just seems to lack the "+" character. So, just adding it like this should fix this problem:
^((?:@[\w.-]{1,200}\/)?[\w.-]{1,200})(?:@([a-z0-9^.~>=<+-]{1,50}))?(?:\/(.*))?$

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions