cypress: Cannot find module 'tslib' on fresh installation

Current behavior:

On a fresh install and launch (yarn run cypress open) I am receiving the following:

Message: Cannot find module 'tslib'
Require stack:
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/reporter/lib/resolve-dist.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/controllers/reporter.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/routes.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/server.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/project.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/gui/events.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/modes/interactive.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/modes/index.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/cypress.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/index.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/index.js
- 

Stack trace:
Error: Cannot find module 'tslib'
Require stack:
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/reporter/lib/resolve-dist.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/controllers/reporter.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/routes.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/server.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/project.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/gui/events.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/modes/interactive.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/modes/index.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/cypress.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/index.js
- /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/index.js
- 
    at Module._resolveFilename (internal/modules/cjs/loader.js:798:15)
    at Function../lib/common/reset-search-paths.ts.Module._resolveFilename (electron/js2c/browser_init.js:7632:16)
    at Module._load (internal/modules/cjs/loader.js:691:27)
    at Module._load (electron/js2c/asar.js:717:26)
    at Function.Module._load (electron/js2c/asar.js:717:26)
    at Function.Module._load (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/override_require.js:18:25)
    at Module.require (internal/modules/cjs/loader.js:853:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/reporter/lib/resolve-dist.js:2:15)
    at Module._compile (internal/modules/cjs/loader.js:968:30)
    at Module.m._compile (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/ts-node/src/index.ts:536:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:986:10)
    at Object.require.extensions.<computed> [as .js] (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/ts-node/src/index.ts:539:12)
    at Module.load (internal/modules/cjs/loader.js:816:32)
    at Module._load (internal/modules/cjs/loader.js:728:14)
    at Module._load (electron/js2c/asar.js:717:26)
    at Function.Module._load (electron/js2c/asar.js:717:26)
    at Function.Module._load (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/override_require.js:18:25)
    at Module.require (internal/modules/cjs/loader.js:853:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/controllers/reporter.js:2:18)
    at Module._compile (internal/modules/cjs/loader.js:968:30)
    at Module.m._compile (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/ts-node/src/index.ts:536:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:986:10)
    at Object.require.extensions.<computed> [as .js] (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/ts-node/src/index.ts:539:12)
    at Module.load (internal/modules/cjs/loader.js:816:32)
    at Module._load (internal/modules/cjs/loader.js:728:14)
    at Module._load (electron/js2c/asar.js:717:26)
    at Function.Module._load (electron/js2c/asar.js:717:26)
    at Function.Module._load (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/override_require.js:18:25)
    at Module.require (internal/modules/cjs/loader.js:853:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/routes.js:9:18)
    at Module._compile (internal/modules/cjs/loader.js:968:30)
    at Module.m._compile (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/ts-node/src/index.ts:536:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:986:10)
    at Object.require.extensions.<computed> [as .js] (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/ts-node/src/index.ts:539:12)
    at Module.load (internal/modules/cjs/loader.js:816:32)
    at Module._load (internal/modules/cjs/loader.js:728:14)
    at Module._load (electron/js2c/asar.js:717:26)
    at Function.Module._load (electron/js2c/asar.js:717:26)
    at Function.Module._load (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/override_require.js:18:25)
    at Module.require (internal/modules/cjs/loader.js:853:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Server.createRoutes (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/server.js:174:12)
    at /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/server.js:220:12
    at tryCatcher (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/bluebird/js/release/util.js:16:23)
    at Function.Promise.attempt.Promise.try (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/bluebird/js/release/method.js:39:29)
    at Server.open (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/server.js:195:23)
    at /Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/lib/project.js:135:26
    at tryCatcher (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/bluebird/js/release/promise.js:729:18)
    at _drainQueueStep (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/bluebird/js/release/async.js:93:12)
    at _drainQueue (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/Alex/Library/Caches/Cypress/4.11.0/Cypress.app/Contents/Resources/app/packages/server/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (internal/timers.js:439:21)

image

Desired behavior:

I expected to be met with the Cypress test runner.

Test code to reproduce

yarn add cypress
yarn run cypress open

Versions

Cypress 4.11.0 macOS Catalina 10.15.5 Beta

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 7
  • Comments: 16 (6 by maintainers)

Most upvoted comments

I narrowed it down to this typescript config setting:

importHelpers: true

https://webhint.io/docs/user-guide/hints/hint-typescript-config/import-helpers/

Why is this important? By enabling the importHelpers compiler option of TypeScript, the compiler will use the tslib package and reduce the size of the output. E.g.:

The docs for it calls out the tslib package by name, so the story checks out.

Now the question is, why would this conflict with Cypress?

You can reliably reproduce this by creating a brand new Create React App with TypeScript, installing Cypress, and then adding importHelpers: true to the tsconfig.json in the root of the project and then run cypress open.

npx create-react-app my-app --template typescript

@shaharkazaz We are in the middle of releasing and blocked on this issue atm https://github.com/cypress-io/cypress/issues/8299 So whenever that is resolved.