DonJayamanne/typescript-notebook

Rich Outputs Example - problems loading packages

Closed this issue · 2 comments

I'm trying out the basic Rich Outputs example. I can't get past the node-fetch import.
Running this command
import * as fetch from 'node-fetch'
gives me the error below.

My node_modules are installed. My node and npm versions are > required. Can you help me troubleshoot this?

node:internal/modules/cjs/loader:1150
      throw err;
      ^

Error [ERR_REQUIRE_ESM]: require() of ES Module /Users/ME/projects/notebooks/nodejs/node_modules/node-fetch/src/index.js not supported.
Instead change the require of index.js in null to a dynamic import() which is available in all CommonJS modules.
    at Function._._load (/Users/beckypeltz/.vscode/extensions/donjayamanne.typescript-notebook-2.0.6/out/extension/server/index.js:2:115372)
    at <Cell 11> [1, 38]
    at Script.runInContext (node:vm:139:12)
    at Script.runInNewContext (node:vm:144:17)
    at Object.runInNewContext (node:vm:298:38)
    at C (/Users/beckypeltz/.vscode/extensions/donjayamanne.typescript-notebook-2.0.6/out/extension/server/index.js:2:113345)
    at t.execCode (/Users/beckypeltz/.vscode/extensions/donjayamanne.typescript-notebook-2.0.6/out/extension/server/index.js:2:114312)
    at k.<anonymous> (/Users/beckypeltz/.vscode/extensions/donjayamanne.typescript-notebook-2.0.6/out/extension/server/index.js:2:142156)
    at k.emit (node:events:527:28)
    at k.emit (node:domain:475:12)
    at e.exports.P (/Users/beckypeltz/.vscode/extensions/donjayamanne.typescript-notebook-2.0.6/out/extension/server/index.js:2:184430)
    at e.exports.emit (node:events:527:28)
    at e.exports.emit (node:domain:475:12)
    at e.exports.dataMessage (/Users/beckypeltz/.vscode/extensions/donjayamanne.typescript-notebook-2.0.6/out/extension/server/index.js:2:165581)
    at e.exports.getData (/Users/beckypeltz/.vscode/extensions/donjayamanne.typescript-notebook-2.0.6/out/extension/server/index.js:2:164763)
    at e.exports.startLoop (/Users/beckypeltz/.vscode/extensions/donjayamanne.typescript-notebook-2.0.6/out/extension/server/index.js:2:161624)
    at e.exports._write (/Users/beckypeltz/.vscode/extensions/donjayamanne.typescript-notebook-2.0.6/out/extension/server/index.js:2:160979)
    at Socket.R (/Users/beckypeltz/.vscode/extensions/donjayamanne.typescript-notebook-2.0.6/out/extension/server/index.js:2:184956)
    at Socket.emit (node:events:527:28)
    at Socket.emit (node:domain:475:12)

I figured it out. I just needed to npm init and the npm install. To get around using require in typescript, I declared it as a function declare function require(name:string);

For people who might encounter this issue like me, use the CommJS version of node-fetch

npm i node-fetch@2

The extension currently didn't support ESM yet