When I run node in my console and type var _ = require('underscore');
, _
ends up undefined. If I put the same code in a file and execute it, the underscore library gets included as expected.
$ node
> var _ = require('underscore');
> console.log(_)
undefined // underscore library does not load
> var async = require('async');
undefined
> console.log(async) // async library does
{ noConflict: [Function],
nextTick: [Function],
forEach: [Function],
...
>
But the same code in a .js file executed as node test.js
shows both libraries loading as expected. What's going on?
The Node repl binds
_
to the value of the last evaluated input; which overwrites your_
binding invar _ = ...;
. Also see the node.js documentation on the repl.This is true no matter what replaces
...
, for example: