Create-react-app: Hanging at 'Files successfully emitted, waiting for typecheck results...'

Created on 24 Mar 2020  路  24Comments  路  Source: facebook/create-react-app

3.4.1
This just started happening and can't get rid of it. Without any package changes. It had been working alright, then suddenly hangs forever. Tried npm reinstall --no-cache, updated packages to 3.4.1. Have no idea what's causing it.

Downgrading typescript (used to be 3.7.5) to 3.3 or upgrading it to 3.8.3 didn't help either. Building in node 13.7 & node 13.10, with same results.

tsconfig is the same as in the ejected CRA with additional

"experimentalDecorators": true,
    "noImplicitAny": false,
    "strictNullChecks": false
bug report needs triage stale

Most helpful comment

Can confirm this is happening as well on a fresh ejected project. It hangs on that message, but after you change a file to trigger a recompile, it stops hanging until you restart the dev server.

All 24 comments

Resolved. I don't know what the initial problem was, since, again, I hadn't changed any packages, but I created a new CRA project with typescript and copied the libs from package.json. Works fine for now.

No, sorry. It's back again. Worked for two times, and now hanging again.

Same here.

.. and I get ReferenceError: _createSuper is not defined right at the start-up when accessing localhost:3000.

Also tried to delete the babel cache.

... after reverting to 3.4.0 everything works again.

Removed package-lock.json, and did an npm install --package-lock. Tried 3 times, it's working (still). Previoulsy meanwhile I had run an npm audit fix, so I believe (and hope) that breaks the compilation for CRA 3.4.1. So don't run npm audit fix people!

Hmmm, after deleting node_modules + package-lock.json, I get the following error now:

Module parse failed: Cannot use keyword 'await' outside an async function (85:31)
File was processed with these loaders:
 * ./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.

(_Cannot use keyword 'await' outside an async function_ is not correct, it's indeed an async method.)

I'm currently experiencing the same issue with the dev server getting stuck on Files successfully emitted, waiting for typecheck results....

I tried the steps @sandorvasas noted above and it is still not fixing the issue for me.
@sandorvasas are you using any web workers with workerize perhaps?

I'm seeing this same issue just pop up with the dev server. Deleted node_modules and re-installed, same result. If I let the process hang for long enough it fails with JavaScript heap out of memory.

I just ran another test: npm un react-scripts && npm i [email protected] (re-install).

Now the start is not hanging, but I still have the ReferenceError: _createSuper is not defined error.

... so this error definitely has to do with updated _indirect_ dependencies (probably Babel which has been updated from 7.8.x to 7.9.0).

@samheutmaker Try increasing max_old_space_size.
node --max_old_space_size=8192 scripts/start.js

Can confirm this is happening as well on a fresh ejected project. It hangs on that message, but after you change a file to trigger a recompile, it stops hanging until you restart the dev server.

I've now tried with a fresh and empty CRA and i can confirm that for me it does not happen, exact package versions are listed below if you're interested.

However i was using workerize-loader to use a web worker to convert images to base-64 strings in the
background.

The import statement needed to use the worker was using a custom format:

import createWorker, {
  Workerized
} from "workerize-loader!./my-worker-file.worker";

And this worked because i had a custom typings file:

declare module "workerize-loader!*" {
  type AnyFunction = (...args: any[]) => any;
  type Async<F extends AnyFunction> = (
    ...args: Parameters<F>
  ) => Promise<ReturnType<F>>;

  export type Workerized<T> = Worker &
    { [K in keyof T]: T[K] extends AnyFunction ? Async<T[K]> : never };

  function createInstance<T>(): Workerized<T>;
  export = createInstance;
}

The import statement above also needed a // eslint-disable-next-line, when i removed it i saw that the error was stating that you shouldn't use custom imports to modify the webpack build.
This was build by my friend so i did not know what the effects were.

As soon as i added these files and used them in the new fresh CRA project i got locked at the message mentioned in the issue title.

It's not likely that you're facing this exact issue, but maybe you have custom typing somewhere that is causing this. I thought I'd put it here for future readers.

This will probably lead to us ejecting from CRA instead, since we have a couple of things that needs it.

Here's our exact package versions, since i did not get the error without the workerize-loader package, maybe you'd like to try the version of react-scripts we're using. Beware that we are using slightly older versions of the packages since we're hunting problems of our own with this project:

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@babel/plugin-proposal-optional-chaining": "7.7.5",
    "@mdi/js": "4.8.95",
    "@mdi/react": "1.2.1",
    "@types/jest": "24.0.17",
    "@types/node": "12.7.1",
    "@types/react": "16.9.1",
    "@types/react-dom": "16.8.5",
    "file-saver": "2.0.2",
    "moment": "2.24.0",
    "react": "16.12.0",
    "react-dom": "16.12.0",
    "react-scripts": "3.4.0",
    "typescript": "3.7.3",
    "workerize-loader": "1.1.0"
  },
  "devDependencies": {
    "@types/file-saver": "2.0.1",
    "eslint": "6.8.0"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "babel": {
    "plugins": [
      "@babel/plugin-proposal-optional-chaining"
    ]
  }
}

Simulator Screen Shot - iPhone 11 - 2020-04-02 at 18 32 29

Does anybody get this error like me? I have tried to up and downgrade the version of babel. But it still occurs? Could you help me explain exactly what is it? Thanks!

Update as of today: Appeared again. Seems totally random when it appears or goes away

Same here.

But if I run yarn tsc --noEmit it's done in a second

Even better:

I did a yarn eject and changed in webpack.config.js this line to useTypescriptIncrementalApi: false, and it works again.

Will roll back and edit inside the node_modules folder for now.

I've now tried with a fresh and empty CRA and i can confirm that for me it does not happen, exact package versions are listed below if you're interested.

However i was using workerize-loader to use a web worker to convert images to base-64 strings in the
background.

The import statement needed to use the worker was using a custom format:

import createWorker, {
  Workerized
} from "workerize-loader!./my-worker-file.worker";

And this worked because i had a custom typings file:

declare module "workerize-loader!*" {
  type AnyFunction = (...args: any[]) => any;
  type Async<F extends AnyFunction> = (
    ...args: Parameters<F>
  ) => Promise<ReturnType<F>>;

  export type Workerized<T> = Worker &
    { [K in keyof T]: T[K] extends AnyFunction ? Async<T[K]> : never };

  function createInstance<T>(): Workerized<T>;
  export = createInstance;
}

The import statement above also needed a // eslint-disable-next-line, when i removed it i saw that the error was stating that you shouldn't use custom imports to modify the webpack build.
This was build by my friend so i did not know what the effects were.

As soon as i added these files and used them in the new fresh CRA project i got locked at the message mentioned in the issue title.

It's not likely that you're facing this exact issue, but maybe you have custom typing somewhere that is causing this. I thought I'd put it here for future readers.

This will probably lead to us ejecting from CRA instead, since we have a couple of things that needs it.

Here's our exact package versions, since i did not get the error without the workerize-loader package, maybe you'd like to try the version of react-scripts we're using. Beware that we are using slightly older versions of the packages since we're hunting problems of our own with this project:

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@babel/plugin-proposal-optional-chaining": "7.7.5",
    "@mdi/js": "4.8.95",
    "@mdi/react": "1.2.1",
    "@types/jest": "24.0.17",
    "@types/node": "12.7.1",
    "@types/react": "16.9.1",
    "@types/react-dom": "16.8.5",
    "file-saver": "2.0.2",
    "moment": "2.24.0",
    "react": "16.12.0",
    "react-dom": "16.12.0",
    "react-scripts": "3.4.0",
    "typescript": "3.7.3",
    "workerize-loader": "1.1.0"
  },
  "devDependencies": {
    "@types/file-saver": "2.0.1",
    "eslint": "6.8.0"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "babel": {
    "plugins": [
      "@babel/plugin-proposal-optional-chaining"
    ]
  }
}

I have a very similar issue I'm experiencing for the last couple of weeks - I was sure it's related to me importing babel/rollup in some areas of the code.

My setup is very similar with workerize loader and typescript - only that I have partial typescript throughout the app and the part loading the loader is plain jsx - so I never noticed it's related.

On top of that I'm loading the worker file twice, once as a worker and once as a regular module.

Removing the workerize loader import resolved my issue! Now simply to rewrite the API between worker and main thread.

Revert to 3.4.0 solve this issue for me

im trying to run a fresh install of ionic react. when running ionic serve its hanging at "Files successfully emitted, waiting for typecheck results...". everything fresh install from nodejs to ionic..

I had same issue. Problem in my repository was that we used to use jsDocs for type annotation in js files, and I had wrong type declaration in code, like this:

/** @type {import('./../filePath').} */
let variable;

Notice that there is nothing after .. After removing this line everything worked as expected.

This issue has been automatically marked as stale because it has not had any recent activity. It will be closed in 5 days if no further activity occurs.

This issue has been automatically closed because it has not had any recent activity. If you have a question or comment, please open a new issue.

Was this page helpful?
0 / 5 - 0 ratings