Skip to content
New issue

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

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

Already on GitHub? # to your account

Allow JSON with comments in jsconfig.json #7426

Open
mrmckeb opened this issue Jul 25, 2019 · 13 comments
Open

Allow JSON with comments in jsconfig.json #7426

mrmckeb opened this issue Jul 25, 2019 · 13 comments

Comments

@mrmckeb
Copy link
Contributor

mrmckeb commented Jul 25, 2019

Is your proposal related to a problem?

This is a follow-on from #7248. Right now, we don't support JSONC (JSON with comments) in jsconfig.json files.

Describe the solution you'd like

After a discussion with @iansu, we see two paths:

  1. Implement the same solution as we did for TypeScript. This is easy, but would require us making TypeScript a dependency of react-scripts.
  2. The above, but instead of installing typescript as a dependency of react-scripts, we would install it to the user's project if they are using a jsconfig.json file and don't have typescript installed.

Discussion is welcome.

If you're interested in picking this up, please let us know.

@miraage
Copy link

miraage commented Jul 25, 2019

https://www.npmjs.com/package/json5 seems to be quite popular. Both .json and .json5 could be supported with their syntax (i.e. no jsonc/json5 in .json files)

@mrmckeb
Copy link
Contributor Author

mrmckeb commented Jul 25, 2019

@miraage, I personally feel that adding a dependency to read JSONC files would be a poorer solution than adding TS as a dependency... adding TS actually gives us some other benefits, like potentially pinning TS versions (so that they align with the linting configs, etc).

@lianapache
Copy link

lianapache commented Jul 25, 2019

@mrmckeb, I would like to pick this up.
Also, I think that moving TypeScript as a dependency to react-scripts sound like a breaking change, so I would rather go with the second option. What do you think?

@mrmckeb
Copy link
Contributor Author

mrmckeb commented Jul 25, 2019

Great, thanks @lianapache!

You should take a look at how verifyTypeScriptSetup.js works and either extend that, or see what can be shared here :)

@lianapache
Copy link

@mrmckeb, Sure 👍 Thanks for the tip!

@miraage
Copy link

miraage commented Jul 25, 2019

@mrmckeb we can pin TS version via react-dev-utils in that case, like cross-spawn and chalk.

@iansu iansu modified the milestones: 3.1, 3.2 Aug 7, 2019
@pardyalbert
Copy link

Weldon guys

@esvyridov
Copy link
Contributor

@mrmckeb What if we parse json file as string and remove all comments?

@mrmckeb
Copy link
Contributor Author

mrmckeb commented Nov 21, 2019

@esvyridov if you'd like to pick this up and give that a go, let me know.

@esvyridov
Copy link
Contributor

@mrmckeb sure, I'll take this 👍

@ianschmitz ianschmitz modified the milestones: 3.3, 3.4 Dec 5, 2019
@esvyridov
Copy link
Contributor

esvyridov commented Dec 5, 2019

@mrmckeb I think I would try to implement the second path. The plan is:

  1. Check if there are comments in jsconfig
  2. If yes then I'll inform user that we found a comment in jsconfig and we need to install typescript to devDependencies in order to parse it.
  3. If not then just parse it

@mrmckeb
Copy link
Contributor Author

mrmckeb commented Dec 9, 2019

@esvyridov, what if we did this?

  1. Check if TS is installed, and parse with that - or parse without if not installed.
  2. If we fail, and TS was not installed, tell the user that they need to install TypeScript as a dependency if they want to support JSONC.

@esvyridov
Copy link
Contributor

@mrmckeb PR #8140 is ready

@iansu iansu modified the milestones: 3.4, 3.5 Feb 14, 2020
@raix raix modified the milestones: 5.1, 5.0.1 Dec 17, 2021
@iansu iansu modified the milestones: 5.0.1, 5.0.2 Apr 12, 2022
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants