Search code examples
javascriptrequire

Is 'require(...)' a common javascript pattern or a library function?


I usually find this as the first line in node.js scripts/modules as well as phantomJS, casperJS etc. I'm curious, if this is a common pattern for server-side javascript (SSJS) (similar to #include in C/C++ or import in Java) or is it a a library like RequireJS or LabJS that is being called for this inclusion (neither of which I have gotten a chance to use in practice, as yet)?

e.g. var http = require('http') or var casper = require('casper').create()

I'm curious if this is a pattern that has become standardized for SSJS or does every library/tool call an existing function?

Please pardon the n00b dimension to the question but I would like to know the 'why' behind its omnipresence :)


Solution

  • The require() idiom is part of a specification known as CommonJS. Specifically, that part of the spec is called 'Modules'. RequireJS is just one implementation of CommonJS (and it's usually a browser-side implementation - in fact, it takes a different approach because of the asynchronous nature of the browser).

    If you look at the list of implementations on the CommonJS site, you'll see Node.js listed. Notice that it implements 'Modules'. Hence, that's where it's coming from - it's very much built-in.