Create-react-app: TypeError: Cannot assign to read only property 'jsx' of object '#<Object>'

Created on 20 Nov 2020  ·  46Comments  ·  Source: facebook/create-react-app

Describe the bug

When creating a react-typescript app using

npx create-react-app . --template typescript

The error:

yarn run v1.22.5
$ react-scripts start
/home/aditya/all/yt/twitter/node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js:239
      appTsConfig.compilerOptions[option] = value;
                                          ^

TypeError: Cannot assign to read only property 'jsx' of object '#<Object>'
    at verifyTypeScriptSetup (/home/aditya/all/yt/twitter/node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js:239:43)
    at Object.<anonymous> (/home/aditya/all/yt/twitter/node_modules/react-scripts/scripts/start.js:31:1)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
bug report needs triage

Most helpful comment

Personally, I was able to fix this issue (this is on a fresh project) by:
-changing the typescript version in package.json to "~4.0.5"
-changing the value "jsx" in compilerOptions inside tsconfig.json to "react" instead of "react-jsx"
-run npm install so that the older typescript version is installed
-I don't think this is needed but perhaps make sure vscode has the intellisense of ts set to the same or similar version to the one you've installed Mine is set to use the local one I just installed - 4.0.5
-I was then able to start the project normally with npm start

All 46 comments

I have this happening after upgrading to typescript 4.1

Same issue I am facing. Just ran the npx create-react-app my-app --template typescript command.
When I run it using yarn start, I get this error.

+1
Me too.

Duplicate of #9868

Definitely, a Duplicate of #9868 but also can confirm getting the following error: -

TypeError: Cannot assign to read only property 'jsx' of object '#<Object>'
    at verifyTypeScriptSetup (/Users/Nathan/Projects/pwa/pwa-react/pwa-react/node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js:239:43)
    at Object.<anonymous> (/Users/Nathan/Projects/pwa/pwa-react/pwa-react/node_modules/react-scripts/scripts/start.js:31:1)
    at Module._compile (internal/modules/cjs/loader.js:1156:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
    at internal/main/run_main_module.js:18:47
error Command failed with exit code 1.

+1 seeing this as well

+1 Now i can't create new typescript anymore !!!

You can fix this issue for the time being by downgrading to Typescript 4.0.5. It is an issue with Typescript 4.1+ being present with CRA 4.0 and may be fixed once CRA 4.0.1 is released.

I've just had this exact error, the problem is increate-react-app\packages\react-scripts\scripts\utils\verifyTypeScriptSetup.js on Line 151 (to find it search for ts.JsxEmit.ReactJ) it was using ts.JsxEmit.ReactJsx but should use ts.JsxEmit.ReactJSX (JSX being upper case)

Thanks to @benneq this is fixed in the master branch (already three weeks ago), just needs a new patch version (see the fix: https://github.com/facebook/create-react-app/pull/9869).
Can somebody release a 4.0.1?

You can fix this issue for the time being by downgrading to Typescript 4.0.5. It is an issue with Typescript 4.1+ being present with CRA 4.0 and may be fixed once CRA 4.0.1 is released.

I tried that. Downgraded to TS 4.0.5 and replace "react-jsx" with "react" in the tsconfig.json jsx field.
But nothing seems to solve this.

please solve this . i have this error too.

Personally, I was able to fix this issue (this is on a fresh project) by:
-changing the typescript version in package.json to "~4.0.5"
-changing the value "jsx" in compilerOptions inside tsconfig.json to "react" instead of "react-jsx"
-run npm install so that the older typescript version is installed
-I don't think this is needed but perhaps make sure vscode has the intellisense of ts set to the same or similar version to the one you've installed Mine is set to use the local one I just installed - 4.0.5
-I was then able to start the project normally with npm start

I just deleted tsconfig.json and ran yarn start, and it recreates it and runs (I did update to ts 4.0.5 too). But you have to delete everytime you run yarn start. i.e

rm tsconfig.json && yarn start

Hacky until we get a fix.

I just deleted tsconfig.json and ran yarn start, and it recreates it and runs (I did update to ts 4.0.5 too). But you have to delete everytime you run yarn start. i.e

rm tsconfig.json && yarn start

Hacky until we get a fix.

It works and the generated file is actually identical

For anyone also seeing this error.. it is already known, and a fix has been merged to master.

What we are waiting for now is a React-Scripts v4.0.1 patch on npm... no word yet on when that's happening.

The fix I am referencing: https://github.com/facebook/create-react-app/pull/9869

I just deleted tsconfig.json and ran yarn start, and it recreates it and runs (I did update to ts 4.0.5 too). But you have to delete everytime you run yarn start. i.e

rm tsconfig.json && yarn start

Hacky until we get a fix.

Yooo. Thanks

You could also comment out the line 239 in verifyTypeScriptSetup.js
if you do not want to remove your
Tsconfig file.
To find this file. You must go to node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js

You could also comment out the line 239 in verifyTypeScriptSetup.js
if you do not want to remove your
Tsconfig file.
To find this file. You must go to node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js

This is not a solution in any kind of production environment that uses a VCS that ignores the node_modules directory.

Solution

Change typescript version in package.json
"typescript": "~4.0.5",

Change in tsconfig.json
"jsx": "react"

In the terminal

yarn install 
yarn start

A quick solution as mentioned above 👍

yarn add [email protected]
rm tsconfig.json
yarn start

Workaround for those who want to use TypeScript 4.1 and create-react-app 4.0.0: set the environment variable DISABLE_NEW_JSX_TRANSFORM to true to avoid the buggy code in verifyTypeScriptSetup.js until 4.0.1 is released.

Also, "jsx" must be set to "react" in tsconfig.json

The scripts section of my package.json now looks like this:

    "start": "env DISABLE_NEW_JSX_TRANSFORM=true react-scripts start",
    "build": "env DISABLE_NEW_JSX_TRANSFORM=true react-scripts build",
    "test": "env DISABLE_NEW_JSX_TRANSFORM=true react-scripts test",
    "eject": "env DISABLE_NEW_JSX_TRANSFORM=true react-scripts eject"

I solve this issue

"react-scripts": "4.0.0-next.98"
"typescript": "^4.1.2",

yarn start

++

Same issue I am facing. Just ran the npx create-react-app my-app --template typescript command.
When I run it using yarn start, I get this error.

I too : (

"react-scripts": "4.0.0-next.98"

Thank you : )

Modified start script in package.json to this and it works for now.
"start": "rm tsconfig.json && react-scripts start",

I modified the jsx property in tsconfig.json to "react" instead of "react-jsx" and changed the typescript version in the package.json file. When i ran yarn install , it prompted me to select a typescript version, I chose 4.0.2 and now it runs without any errors!

I just experienced the same issue

Specifying version 4.0.5 fixed this for me.

Solution

Change typescript version in package.json
"typescript": "~4.0.5",

Change in tsconfig.json
"jsx": "react"

In the terminal

yarn install 
yarn start

it doesn't work

Personally, I was able to fix this issue (this is on a fresh project) by:
-changing the typescript version in package.json to "~4.0.5"
-changing the value "jsx" in compilerOptions inside tsconfig.json to "react" instead of "react-jsx"
-run npm install so that the older typescript version is installed
-I don't think this is needed but perhaps make sure vscode has the intellisense of ts set to the same or similar version to the one you've installed Mine is set to use the local one I just installed - 4.0.5
-I was then able to start the project normally with npm start

worked fine .

works for me with react-jsx in tsconfig.json, and

{
    "react-scripts": "^4.0.1",
    "typescript": "^4.1.2",
}

and

  "babel": {
    "presets": [
      [
        "@babel/preset-react",
        {
          "runtime": "automatic"
        }
      ]
    ]
  },

in my package.json and off course installed the preset: npm i -D @babel/preset-react as advised by the React team:
https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#removing-unused-react-imports

This issue is fixed now. No error with latest versions of react-scripts and typescript.

works for me with

{
    "react-scripts": "^4.0.1",
    "typescript": "^4.1.2",
}

Worked for me too - but when I run "npm run start"again, tsconfig.json keeps changing jsx from "react" to "react-jsx" which causes errors in my tsx files. Is there something else I need to change? Is this unrelated?

I also find the bug,and I use 'react' to replace 'react-jsx' after run 'npm start' by myself...

------------------ 原始邮件 ------------------
发件人: "student020341"<[email protected]>;
发送时间: 2020年11月24日(星期二) 凌晨5:46
收件人: "facebook/create-react-app"<[email protected]>;
抄送: "七仔"<[email protected]>; "Comment"<[email protected]>;
主题: Re: [facebook/create-react-app] TypeError: Cannot assign to read only property 'jsx' of object '#

works for me with
{ "react-scripts": "^4.0.1", "typescript": "^4.1.2", }

Worked for me too - but when I run "npm run start"again, tsconfig.json keeps changing jsx from "react" to "react-jsx" which causes errors in my tsx files. Is there something else I need to change? Is this unrelated?


You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

works for me with

{
    "react-scripts": "^4.0.1",
    "typescript": "^4.1.2",
}

Worked for me too - but when I run "npm run start"again, tsconfig.json keeps changing jsx from "react" to "react-jsx" which causes errors in my tsx files. Is there something else I need to change? Is this unrelated?

Update the typescript version of your IDE.

This seems to have resurfaced in 4.0.1. appTsConfig is assigned to readTsConfig (which is a frozen object), so the following errors out.

https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js#L222-#L228

@student020341

causes errors in my tsx files

react-jsx is correct.
Can you build your app and errors are only at your IDE? As @maltoze said, set your IDE to use the typescript version from the app node_modules folder.

I wrote a short blog post on how to do it for IntelliJ IDE.

Yes,it works,I can run my app normaly...

------------------ 原始邮件 ------------------
发件人: "Honza"<[email protected]>;
发送时间: 2020年11月24日(星期二) 下午4:49
收件人: "facebook/create-react-app"<[email protected]>;
抄送: "七仔"<[email protected]>; "Comment"<[email protected]>;
主题: Re: [facebook/create-react-app] TypeError: Cannot assign to read only property 'jsx' of object '#

@student020341

causes errors in my tsx files

react-jsx is correct.
Can you build your app and errors are only at your IDE? As @maltoze said, set your IDE to use the typescript version from the app node_modules folder.

I wrote a short blog post on how to do it for IntelliJ IDE.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

Worked for me

  • Set Typescript of editor to use workspace version

ctrl | cmd + shift + p and type "Typescript" - select typescript version uses workspace

  • Upgrade react-scripts to latest

npm upgrade react-scripts@latest || yarn upgrade react-scripts@latest
will go to version 4.0.1

  • Upgrade typescript to latest (same command of above but targeted typescript package)
  • Set "jsx" to "react-jsx" in tsconfig.json

I hope this helps.

works for me with

{
    "react-scripts": "^4.0.1",
    "typescript": "^4.1.2",
}

Worked for me too - but when I run "npm run start"again, tsconfig.json keeps changing jsx from "react" to "react-jsx" which causes errors in my tsx files. Is there something else I need to change? Is this unrelated?

Have updated my initial post (see above)

You can add DISABLE_NEW_JSX_TRANSFORM=true to .env file. This way it'll stop replacing react with react-jsx

@maltoze
@madrus
@gynekolog

Thanks! I changed the typescript version vs code was using and that seems to have resolved the issue. It's still react-jsx, but now it works. Everything set to 4.1.x now.

Can anyone confirm if 4.0.1 resolves this issue? We did patch up some of the issues when modifying the tsconfig.

All the solution above doesn't work for me after downgrading typescript today.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

alleroux picture alleroux  ·  3Comments

jnachtigall picture jnachtigall  ·  3Comments

dualcnhq picture dualcnhq  ·  3Comments

fson picture fson  ·  3Comments

wereHamster picture wereHamster  ·  3Comments