Node-fetch: Bug: beta6 dist file references fetch before it is declared

Created on 31 May 2020  路  1Comment  路  Source: node-fetch/node-fetch

Reproduction

Steps to reproduce the behavior:

  1. npm install [email protected]
  2. Try requiring in a commonjs file, get something like the following error:
$ make test
mocha --file test/server-setup.js test/{server-specs,specs}/*.test.js test/specs/**/*.test.js

ReferenceError: Cannot access 'fetch' before initialization
    at Object.<anonymous> (/Users/wheresrhys/Projects/fetch-mock/node_modules/node-fetch/dist/index.cjs:3:28)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Module.require (internal/modules/cjs/loader.js:1019:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (/Users/wheresrhys/Projects/fetch-mock/src/server.js:9:10)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Module.require (internal/modules/cjs/loader.js:1019:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (/Users/wheresrhys/Projects/fetch-mock/test/server-setup.js:1:19)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Module.require (internal/modules/cjs/loader.js:1019:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at requireOrImport (/Users/wheresrhys/Projects/fetch-mock/node_modules/mocha/lib/esm-utils.js:15:12)
    at Object.exports.loadFilesAsync (/Users/wheresrhys/Projects/fetch-mock/node_modules/mocha/lib/esm-utils.js:28:26)
    at Mocha.loadFilesAsync (/Users/wheresrhys/Projects/fetch-mock/node_modules/mocha/lib/mocha.js:351:19)
    at singleRun (/Users/wheresrhys/Projects/fetch-mock/node_modules/mocha/lib/cli/run-helpers.js:107:15)
    at exports.runMocha (/Users/wheresrhys/Projects/fetch-mock/node_modules/mocha/lib/cli/run-helpers.js:144:11)
    at Object.exports.handler (/Users/wheresrhys/Projects/fetch-mock/node_modules/mocha/lib/cli/run.js:306:11)
    at Object.runCommand (/Users/wheresrhys/Projects/fetch-mock/node_modules/mocha/node_modules/yargs/lib/command.js:242:26)
    at Object.parseArgs [as _parseArgs] (/Users/wheresrhys/Projects/fetch-mock/node_modules/mocha/node_modules/yargs/yargs.js:1096:28)
    at Object.parse (/Users/wheresrhys/Projects/fetch-mock/node_modules/mocha/node_modules/yargs/yargs.js:575:25)
    at Object.exports.main (/Users/wheresrhys/Projects/fetch-mock/node_modules/mocha/lib/cli/cli.js:68:6)
    at Object.<anonymous> (/Users/wheresrhys/Projects/fetch-mock/node_modules/mocha/bin/mocha:133:29)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
    at internal/main/run_main_module.js:18:47
make: *** [test] Error 1
  1. Looking at index.cjs, fetch is indeed referenced early on, before it is declared
'use strict';

exports = module.exports = fetch;

Expected behavior
In [email protected] this bundling problem does not occur
Your Environment

| software | version
| ---------------- | -------
| node-fetch | 3.0.0-beta.6
| node | 12.16.3
| npm | 6.14.4
| Operating System | MacOS mojave

bug

Most helpful comment

This is fixed by 3.0.0-beta.6-exportfix (#836) . Just do npm i node-fetch@next to update.

>All comments

This is fixed by 3.0.0-beta.6-exportfix (#836) . Just do npm i node-fetch@next to update.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

pdehaan picture pdehaan  路  6Comments

Janpot picture Janpot  路  4Comments

roccomuso picture roccomuso  路  3Comments

caub picture caub  路  4Comments

waldothedeveloper picture waldothedeveloper  路  5Comments