gensync icon indicating copy to clipboard operation
gensync copied to clipboard

Old pkg config causes errors on transpile

Open codejedi365 opened this issue 2 years ago • 0 comments

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.

codejedi365 avatar Oct 30 '21 18:10 codejedi365