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

Support package.json5 #1633

Open
neongreen opened this issue Jan 2, 2024 · 5 comments
Open

Support package.json5 #1633

neongreen opened this issue Jan 2, 2024 · 5 comments

Comments

@neongreen
Copy link

pnpm allows using package.json5 instead of package.json. The killer feature is that it supports comments.

https://docs.rs/json5format/0.2.6/json5format/ could be used to read/write json5 while preserving comments.

@ljharb
Copy link

ljharb commented Jan 2, 2024

Until node supports serialization and deserialization of a format natively, package managers shouldn’t, and it’s a mistake for pnpm to do so - especially if it could end up being published.

@chriskrycho
Copy link
Contributor

That's wild, and I am broadly inclined to agree with @ljharb here—the interop hazards here seem pretty significant to me. Node has a ton of things that it does differently in the presence vs. absence of a package.json file, and while it is interesting that pnpm supports using JSON5 (I guess for use in contexts where a bundler will be used? Though most bundlers also look at regular package.json files!) it definitely seems like a hazard to try to support it here.

@neongreen
Copy link
Author

the interop hazards here seem pretty significant to me

I suppose it heavily depends on the usage patterns. Some people work on dozens / hundreds of libraries and the interop hazard is higher. Some people (like me) never do anything that would end up on npm.

So I'd definitely appreciate being able to opt into VOLTA_FEATURE_JSON5=1 or something along those lines — it's somewhat painful to have a huge messy package.json and not be able to document anything there without significant friction.

(On the broader topic of whether it's a hazard to the ecosystem — unfortunately I have no idea.)

@chriskrycho
Copy link
Contributor

Having some kind of opt-in mode would definitely make it more viable, but even beyond that: I tagged it as an enhancement and am leaving it open because while I see the hazards (as described above) Volta also tries to Just Work™ with the ecosystem as it actually is, so my opinion about what package managers should do may end up being different from what Volta should do!

@hockdudu
Copy link

hockdudu commented May 28, 2024

For the record, there was a feature request on supporting JSON5 on Node, but it was closed a few years ago (the issue is still active, though): nodejs/node#40714

There's also an RFC on allowing comments on JSON through other means than JSON5 on NPM, but it doesn't seem to be getting far either: npm/rfcs#291

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

No branches or pull requests

4 participants