0

I'm trying to require a CoffeeScript file from a Node.js application but Node.js gives error Error: Cannot find module 'something'. What is the proper way to do this? If I compile the CoffeeScript code beforehand, it works but I don't want to do this.

test.js:

require('coffee-script').register();

require('something');

something.coffee:

console.log('Hello World!');

Console output:

> node test.js

module.js:340
    throw err;
          ^
Error: Cannot find module 'something'
  at Function.Module._resolveFilename (module.js:338:15)
  at Function.Module._load (module.js:280:25)
  at Module.require (module.js:364:17)
  at require (module.js:380:17)
  at Object.<anonymous> (C:\Users\Sami\Desktop\smallscale\test.js:3:1)
  at Module._compile (module.js:456:26)
  at Object.Module._extensions..js (module.js:474:10)
  at Module.load (module.js:356:32)
  at Function.Module._load (module.js:312:12)
  at Function.Module.runMain (module.js:497:10)
  at startup (node.js:119:16)
  at node.js:906:3
3
  • You're also against a watch process that compiles it? Commented Feb 10, 2015 at 19:38
  • 1
    @DaveNewton Well I found multiple answers suggesting this should be possible. See for example stackoverflow.com/a/4769079/2193958. Commented Feb 10, 2015 at 19:58
  • Why not try what it said there? I always have a watcher that's linting and compiling so I don't really know about on-demand compilation--sorry. Commented Feb 10, 2015 at 20:02

1 Answer 1

2

It seems like you are trying to require() a file using the structure to require() a module.

If you require() something without giving require() a path to a file (absolute or relative), Node.js is going to look up for your module inside the /node_modules directory. You can read the documentation here.

Try requiring your module as a JavaScript file like this:

require('./something')

(and make sure './something' is the path from where you require the module to where the module is located in your app structure, or use an absolute path).

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.