2

I'm trying to build lumo (a Clojurescript REPL) from source in a Debian chroot, and running into an error:

Building production bundle...
Circular dependency: src/js/cljs.js -> src/js/repl.js -> src/js/cljs.js
Circular dependency: src/js/cli.js -> src/js/cljs.js -> src/js/repl.js -> src/js/socketRepl.js -> src/js/cli.js
Circular dependency: src/js/repl.js -> src/js/socketRepl.js -> src/js/repl.js
Circular dependency: src/js/cljs.js -> src/js/repl.js -> src/js/socketRepl.js -> src/js/cljs.js
internal/modules/cjs/loader.js:796
    throw err;
    ^

Error: Cannot find module 'rollup'
Require stack:
- /root/tmp/lumo-1.10.1/scripts/bundleForeign.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:793:17)
    at Function.Module._load (internal/modules/cjs/loader.js:686:27)
    at Module.require (internal/modules/cjs/loader.js:848:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (/root/tmp/lumo-1.10.1/scripts/bundleForeign.js:1:16)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/root/tmp/lumo-1.10.1/scripts/bundleForeign.js' ]
}

I've tried yarn add rollup, npm install rollup, and npm install -g rollup, none of which help.

Unfortunately I don't understand enough about this build system to know what to try next.

Any ideas?

Here are the build scripts: https://gist.github.com/cellularmitosis/df87e0c962e184b8bd29c8a3f07f3db4

EDIT: here is the contents of bundleForeign.js:

const rollup = require('rollup').rollup;
const resolve = require('rollup-plugin-node-resolve');
const replace = require('rollup-plugin-replace');
const commonjs = require('rollup-plugin-commonjs');

rollup({
  input: 'node_modules/google-closure-compiler-js/compile.js',
  plugins: [
    replace({
      'process.env.NODE_ENV': JSON.stringify('production'),
    }),
    resolve({
      mainFields: ['module', 'main', 'jsnext:main'],
    }),
    commonjs(),
  ],
})
  .then(bundle => {
    bundle.write({
      format: 'cjs',
      file: 'target/google-closure-compiler-js.js',
      strict: false,
    });
  })
  .catch(console.error);

EDIT2: Perhaps this is just a node issue?

I just created /tmp/foo.js:

const rollup = require('rollup').rollup;

and ran cd /tmp && node foo.js, which produces the same error:

internal/modules/cjs/loader.js:796
    throw err;
    ^

Error: Cannot find module 'rollup'
Require stack:
- /tmp/foo.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:793:17)
    at Function.Module._load (internal/modules/cjs/loader.js:686:27)
    at Module.require (internal/modules/cjs/loader.js:848:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (/tmp/foo.js:1:16)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/tmp/foo.js' ]
}

I tried npm install -g rollup but that didn't help. Perhaps node isn't looking for global modules in the right place?

CoryCoolguy
  • 1,065
  • 8
  • 18
Jason Pepas
  • 424
  • 5
  • 12

1 Answers1

1

Well, I feel foolish.

$ export NODE_PATH=/opt/node-v12.14.1-linux-x64/lib/node_modules/
$ node foo.js
$ echo $?
$ 0

I just needed to set NODE_PATH.

Jason Pepas
  • 424
  • 5
  • 12