ERR_REQUIRE_ESM when running the usage example from repository's readme.md
lkavicky opened this issue · comments
Describe the bug
When running the basic usage example from repository's readme, I'm getting following error:
internal/modules/cjs/loader.js:1085
throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath);
^
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: D:\workspace\node-sspi-exp3\node_modules\node-fetch\src\index.js
require() of ES modules is not supported.
require() of D:\workspace\node-sspi-exp3\node_modules\node-fetch\src\index.js from D:\workspace\node-sspi-exp3\node_modules\node-expose-sspi\dist\sso\client.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from D:\workspace\node-sspi-exp3\node_modules\node-fetch\package.json.
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1085:13)
at Module.load (internal/modules/cjs/loader.js:933:32)
at Function.Module._load (internal/modules/cjs/loader.js:774:14)
at Module.require (internal/modules/cjs/loader.js:957:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (D:\workspace\node-sspi-exp3\node_modules\node-expose-sspi\dist\sso\client.js:7:38)
at Module._compile (internal/modules/cjs/loader.js:1068:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:933:32)
at Function.Module._load (internal/modules/cjs/loader.js:774:14) {
code: 'ERR_REQUIRE_ESM'
}
To Reproduce
The same steps and flow as in readme:
mkdir myproject
cd myproject
npm init -y
npm i express
npm i node-expose-sspi
...
node server.js
server.js:
const express = require('express');
const { sso } = require('node-expose-sspi');
const app = express();
app.use(sso.auth());
app.use((req, res, next) => {
res.json({
sso: req.sso,
});
});
app.listen(3000, () => console.log('Server started on port 3000'));
Expected behavior
Run without errors.
Environment version:
- OS: Windows 10 Pro 10.0.19042 Build 19042 x64
- Node version and architecture: v14.17.0 64bits
- npm version: 6.14.13
I am also facing a similar issue.
Yes I am able to reproduce it.
It is probably because of the node-fetch library. The author released a new version which causes the issue.
Quick fix: npm i node-fetch@3.0.0-beta.9
What I am going to do is to fix the node-fetch version.
It is fixed. Please test.
I tested and it works perfectly fine. Thanks a lot for quick turnaround :)
It's working for me too, thanks a lot!