wmr
wmr copied to clipboard
"Invalid Specifier" due to "+" character (build metadata) in semver
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
orwmr 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}))?(?:\/(.*))?$