cypress: Cypress cannot start with importHelpers and allowJS TypeScript options
Current behavior:
Attempting to launch Cypress with this tsconfig results in the following exception:
{
"compilerOptions": {
"importHelpers": true,
"allowJs": true
}
}
Error: Cannot find module 'tslib'
Require stack:
- C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\reporter\lib\resolve-dist.js
- C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\controllers\reporter.js
- C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\routes.js
- C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\server.js
- C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\project.js
- C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\gui\events.js
- C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\modes\interactive.js
- C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\modes\index.js
- C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\cypress.js
- C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\index.js
- C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\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:7630: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 (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\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> (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\reporter\lib\resolve-dist.js:1:15)
at Module._compile (internal/modules/cjs/loader.js:968:30)
at Module.m._compile (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\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] (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\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 (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\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> (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\controllers\reporter.js:8:14)
at Object.<anonymous> (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\controllers\reporter.js:18:4)
at Module._compile (internal/modules/cjs/loader.js:968:30)
at Module.m._compile (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\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] (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\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 (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\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> (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\routes.js:9:18)
at Module._compile (internal/modules/cjs/loader.js:968:30)
at Module.m._compile (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\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] (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\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 (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\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 (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\server.js:159:14)
at C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\server.js:205:17
at tryCatcher (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\util.js:16:23)
at Function.Promise.attempt.Promise.try (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\method.js:39:29)
at Server.open (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\server.js:180:28)
at C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\lib\project.js:135:26
at tryCatcher (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\util.js:16:23)
at Promise._settlePromiseFromHandler (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:547:31)
at Promise._settlePromise (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:604:18)
at Promise._settlePromise0 (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:649:10)
at Promise._settlePromises (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\promise.js:729:18)
at _drainQueueStep (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\async.js:93:12)
at _drainQueue (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\async.js:86:9)
at Async._drainQueues (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\async.js:102:5)
at Immediate.Async.drainQueues [as _onImmediate] (C:\Users\adgastin\AppData\Local\Cypress\Cache\4.7.0\Cypress\resources\app\packages\server\node_modules\bluebird\js\release\async.js:15:14)
at processImmediate (internal/timers.js:439:21)
Removing either flag fixes the error. tslib is forcibly installed to guarantee there is no issue resolving it.
This appears to occur regardless of what is in the Cypress tsconfig, so as long as the parent project contains this config, Cypress cannot start.
Versions
Cypress 4.6.0 - 4.7.0
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 5
- Comments: 16 (5 by maintainers)
Commits related to this issue
- Fix vue Cypress failing see https://github.com/cypress-io/cypress/issues/7503 — committed to avdev4j/generator-jhipster by avdev4j 4 years ago
- Fix vue Cypress failing see https://github.com/cypress-io/cypress/issues/7503 — committed to avdev4j/generator-jhipster by avdev4j 4 years ago
- Fix vue Cypress failing see https://github.com/cypress-io/cypress/issues/7503 — committed to avdev4j/generator-jhipster by avdev4j 4 years ago
According to the docs (https://docs.cypress.io/guides/tooling/typescript-support.html#Configure-tsconfig-json) we should be able to use a
tsconfig.jsoninside thecypressdirectory to setimportHelpersfalse… but that doesn’t appear to work for me.I’m getting the same error using any version that’s >= 4.4.0. Works fine in 4.3.0.
@Hypercubed
I had the same issue when upgrading Cypress 4.3.0 -> 4.10.0. I used the default
tsconfig.jsonthat Cypress recommends, insidecypress/dir. By defaultimportHelpersarefalsein such config but I was still hitting thetsliberror. What helped was settingimportHelpers: falsein our roottsconfig.json(we had it explicitly enabled). Hope this helps!@boxmein Thank you for providing this workaround!
I fixed my own setup by not using “importHelpers” anymore. It might be possible to side-step this problem by setting the importHelpers flag to false.
The code for this is done in cypress-io/cypress#7982, but has yet to be released. We’ll update this issue and reference the changelog when it’s released.