superagent icon indicating copy to clipboard operation
superagent copied to clipboard

Require is not defined on vanilla js

Open fcastellanosKreios opened this issue 1 year ago • 10 comments

Hi! I'm getting an error while loading the latest version from the vanilla js browser script (https://cdn.jsdelivr.net/npm/superagent):

version: 8.0.1 browser: Edge 105.0.1343.53, Chromium 105.0.5195.125 Console output:

Uncaught ReferenceError: require is not defined
    at superagent:1:14164
    at superagent:1:269
    at superagent:1:274

fcastellanosKreios avatar Sep 30 '22 20:09 fcastellanosKreios

Same here. Using either the jsdelivr.net or unpkg.com URLs. No code change on our end recently.

Browser: Firefox 105.0.1 Same error message as reported above.

lcoffin avatar Oct 01 '22 14:10 lcoffin

Note you can get around this by specifically requesting v8.0.0 using:

lcoffin avatar Oct 01 '22 23:10 lcoffin

Still determining the root cause of this

titanism avatar Oct 03 '22 05:10 titanism

v8.0.2 released - can you please test? @fcastellanosKreios @lcoffin

https://github.com/visionmedia/superagent/releases/tag/v8.0.2

titanism avatar Oct 03 '22 06:10 titanism

I'm still seeing the error with either of these URLs:

https://cdn.jsdelivr.net/npm/superagent https://cdn.jsdelivr.net/npm/[email protected]

@8.0.0 works fine still.

lcoffin avatar Oct 04 '22 23:10 lcoffin

Note that I see this bit of code in 8.0.1 and 8.0.2 that I don't see in 8.0.0:

return"function"==typeof r&&W(t,".prototype.")>-1?_(r):r},V=require(12),Q=q("%TypeError%"),X=q("%WeakMap%",!0)

That's the only reference to require() anywhere in the code that I get.

lcoffin avatar Oct 04 '22 23:10 lcoffin

It must be something to do with babel or .dist.babelrc?

titanism avatar Oct 05 '22 01:10 titanism

tinyify v3.0.0 to v3.1.0 was changed here https://github.com/visionmedia/superagent/commit/1fc968219ee67a86f2e84c9ddcf5df9aa01780d0#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L69-R68 which could be the culprit - the minor version change was common-shakeify bumping major versions here https://github.com/browserify/tinyify/commit/1b0c002b2372270e76ceec2898e2b9816d5716ca

Though this doesn't seem like it'd be the issue

titanism avatar Oct 05 '22 02:10 titanism

Deprecated v8.0.1 and v8.0.2 in the interim - help would be appreciated in determining the underlying cause here. It has to do with creating the dist/superagent.min.js file.

titanism avatar Oct 05 '22 02:10 titanism

Please release v8.0.0 as v8.0.3. Less inconvenient for the users,

levino avatar Oct 05 '22 08:10 levino

@titanism Have you managed to find the underlying issue? Asking because npm install superagent still installs version 8.0.2 (even if it's deprecated) and not 8.0.0. Some kind of solution/fix would be very much appreciated until this problem is solved (perhaps releasing a temporary version 8.0.3).

lorand-horvath avatar Oct 21 '22 11:10 lorand-horvath

@titanism After some investigation regarding tinyify and common-shakeify (you mentioned them above), it seems that 5 days ago there were version bumps for both of them: tinyify from 3.1.0 to 4.0.0 https://github.com/browserify/tinyify/releases/tag/v4.0.0 common-shakeify from 1.1.1 to 1.1.2 https://github.com/browserify/common-shakeify/releases/tag/v1.1.2

It looks like the latter has some related fixes to exports and invalid syntax, which might be the culprit and the fix: Fix certain cases of exports in sequential expressions resulting in invalid syntax https://github.com/browserify/common-shakeify/pull/43

Can you please check and see if updating to tinyify 4.0.0 and/or common-shakeify 1.1.2 would result in a correct build of superagent.min.js ?

lorand-horvath avatar Oct 21 '22 19:10 lorand-horvath

v8.0.3 released to npm 🎉 !!

the issue was tinyify, which bumped common-shakeify, and has a few underlying issues that need resolved before we can upgrade it. apologies for the delay, this wasn't easy to track down.

https://github.com/visionmedia/superagent/releases/tag/v8.0.3

titanism avatar Oct 24 '22 19:10 titanism