gensync
gensync copied to clipboard
Old pkg config causes errors on transpile
I came across an error about 3 layers abstracted from this repository but a simple configuration change to the deployment would prevent issues with support of newer configurations.
My error occurs within DevExpress/testcafe when evaluating a testcase in es2017 javascript. When a testcase is run, it is transposed via Babel prior to execution. Your package is used by @Babel/core@7
. During the babel compilation step, your package processed and it processes your test/index.test.ts
which has an unresolved module.
This is the error I get:
$> npm exec -- testcafe chrome:headless **/*.test.js
ERROR Cannot prepare tests due to the following error:
Error: Cannot find module 'util.promisify'
Require stack:
- /<redacted>/eslint-plugin-testcafe-community/example/node_modules/gensync/test/index.test.js
- /<redacted>/eslint-plugin-testcafe-community/example/node_modules/testcafe/lib/compiler/test-file/formats/es-next/compiler.js
- /<redacted>/eslint-plugin-testcafe-community/example/node_modules/testcafe/lib/compiler/compilers.js
- /<redacted>/eslint-plugin-testcafe-community/example/node_modules/testcafe/lib/compiler/index.js
- /<redacted>/eslint-plugin-testcafe-community/example/node_modules/testcafe/lib/runner/bootstrapper.js
- /<redacted>/eslint-plugin-testcafe-community/example/node_modules/testcafe/lib/runner/index.js
- /<redacted>/eslint-plugin-testcafe-community/example/node_modules/testcafe/lib/testcafe.js
- /<redacted>/eslint-plugin-testcafe-community/example/node_modules/testcafe/lib/index.js
- /<redacted>/eslint-plugin-testcafe-community/example/node_modules/testcafe/lib/cli/cli.js
- /<redacted>/eslint-plugin-testcafe-community/example/node_modules/testcafe/lib/cli/index.js
I dug through the code and found this is because of:
// FILE: gensync/test/index.test.js#3
const promisify = require("util.promisify");
This looks like an old implementation of require()
that is no longer valid in Node@>=10.24
.
I can't figure out why Babel is transpiling the entire module rather than just your package.json[main]
. I figure this is an easy fix to just prevent your test code from being included in your package which is likely unintentional.
FYI, New updates in npmv6 & 7 have helped ensure smaller production packages through the use of the files
directive.