Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

React lib version check should be loosened more #7335

Closed
intrnl opened this issue Nov 20, 2021 · 1 comment · Fixed by #7484
Closed

React lib version check should be loosened more #7335

intrnl opened this issue Nov 20, 2021 · 1 comment · Fixed by #7484

Comments

@intrnl
Copy link

intrnl commented Nov 20, 2021

🐛 bug report

React lib version check should cover extra cases before using semver.

🎛 Configuration (.babelrc, package.json, cli command)

{
	"type": "module",
	"dependencies": {
		"clsx": "^1.1.1",
		"history": "^5.1.0",
		"preact": "https://pkg.csb.dev/preactjs/preact/commit/96082866/preact",
		"react-router-dom": "^6.0.2"
	},
	"devDependencies": {
		"parcel": "^2.0.1",
		"postcss": "^8.3.11",
		"vite": "^2.6.14"
	}
}

🤔 Expected Behavior

Build should run successfully.

😯 Current Behavior

🚨 Build failed.

@parcel/transformer-js: Invalid comparator: https://pkg.csb.dev/preactjs/preact/commit/96082866/preact

  TypeError: Invalid comparator: https://pkg.csb.dev/preactjs/preact/commit/96082866/preact
  at Comparator.parse (/project/node_modules/.pnpm/semver@5.7.1/node_modules/semver/semver.js:754:11)
  at new Comparator (/project/node_modules/.pnpm/semver@5.7.1/node_modules/semver/semver.js:737:8)
  at Range.<anonymous> (/project/node_modules/.pnpm/semver@5.7.1/node_modules/semver/semver.js:925:12)
  at Array.map (<anonymous>)
  at Range.parseRange (/project/node_modules/.pnpm/semver@5.7.1/node_modules/semver/semver.js:924:13)
  at Range.<anonymous> (/project/node_modules/.pnpm/semver@5.7.1/node_modules/semver/semver.js:867:17)
  at Array.map (<anonymous>)
  at new Range (/project/node_modules/.pnpm/semver@5.7.1/node_modules/semver/semver.js:866:40)
  at Function.minVersion (/project/node_modules/.pnpm/semver@5.7.1/node_modules/semver/semver.js:1306:11)
  at loadConfig (/project/node_modules/.pnpm/@parcel+transformer-js@2.0.1_@parcel+core@2.0.1/node_modules/@parcel/transformer-js/lib/JSTransformer.js:222:127)

💁 Possible Solution

reactLibVersion != null && reactLibVersion !== '*'
? semver.minVersion(reactLibVersion)?.toString()
: null;

I think the check here could just be simplified to:

let minReactLibVersion = semver.valid(reactLibVersion)
	? semver.minVersion(reactLibVersion)?.toString()
	: null;

🔦 Context

npm, and other package managers supports installing packages from a tarball, alongside other things like specifying workspace packages with workspace: or even plain symlinking via link:.

npm-install documentation

💻 Code Sample

🌍 Your Environment

Software Version(s)
Parcel 2.0.1
Node 17.1.0
npm/Yarn pnpm 6.22.2
Operating System Arch Linux 5.15.2-217-tkg-pds
@devongovett
Copy link
Member

Want to send a PR for that change?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants