JavaScript — const jsdom = require("jsdom") — Error

JavaScript — const jsdom = require("jsdom") — Error

by Constantine Zakkaroff -
Number of replies: 1

Hello Everyone,

I'm following this post: https://coderunner.org.nz/mod/forum/discuss.php?d=20#p60 for inspiration to create some interesting JavaScript questions.

However, const jsdom = require("jsdom") produces an error:

***Run error***
internal/modules/cjs/loader.js:638
    throw err;
    ^

Error: Cannot find module 'jsdom'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (__tester__.js:2:15)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)

Getting to the bottom of this, what's the way to list installed modules? npm ls? But how can it be run in a question?

Kind regards,
Constantine


In reply to Constantine Zakkaroff

Re: JavaScript — const jsdom = require("jsdom") — Error

by Richard Lobb -

Most coderunner-supported languages allow you to run bash commands. For example, in a Python3 question you could submit an answer like

import subprocess
subprocess.run('npm ls', shell=True)

However, the default Jobe install does not include npm - just a bare-bones nodejs. So you will need to install it first on your Jobe server before adding jsdom.