wmr icon indicating copy to clipboard operation
wmr copied to clipboard

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

Open micschro opened this issue 2 years ago • 0 comments

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:

  • [x] wmr or wmr start (development)
  • [x] wmr build (production)
  • [x] 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}))?(?:\/(.*))?$

micschro avatar May 23 '22 13:05 micschro