Estou aprendendo sobre o node.js e os módulos, e parece que a biblioteca do Underscore não funciona corretamente ... parece que a primeira vez que uso uma função do Underscore, substitui o objeto _ pelo resultado de minha chamada de função. Alguém sabe o que está acontecendo? Por exemplo, aqui está uma sessão do REPL node.js:
Admin-MacBook-Pro:test admin$ node
> require("./underscore-min")
{ [Function]
_: [Circular],
VERSION: '1.1.4',
forEach: [Function],
each: [Function],
map: [Function],
inject: [Function],
(...more functions...)
templateSettings: { evaluate: /<%([\s\S]+?)%>/g, interpolate: /<%=([\s\S]+?)%>/g },
template: [Function] }
> _.max([1,2,3])
3
> _.max([4,5,6])
TypeError: Object 3 has no method 'max'
at [object Context]:1:3
at Interface.<anonymous> (repl.js:171:22)
at Interface.emit (events.js:64:17)
at Interface._onLine (readline.js:153:10)
at Interface._line (readline.js:408:8)
at Interface._ttyWrite (readline.js:585:14)
at ReadStream.<anonymous> (readline.js:73:12)
at ReadStream.emit (events.js:81:20)
at ReadStream._emitKey (tty_posix.js:307:10)
at ReadStream.onData (tty_posix.js:70:12)
> _
3
Quando eu mesmo faço arquivos Javascript e os importo, eles parecem estar funcionando corretamente. Talvez haja algo especial na biblioteca Underscore?
node.js
module
underscore.js
Geoff
fonte
fonte
_
no REPL.A partir de hoje (30 de abril de 2012), você pode usar Underscore normalmente no seu código Node.js. Comentários anteriores apontam corretamente que a interface REPL (modo de linha de comando do Node) usa o "_" para conter o último resultado, MAS você é livre para usá-lo em seus arquivos de código e funcionará sem problemas seguindo o padrão:
Feliz codificação!
fonte
Ou:
fonte
npm install -g underscore
, você quer dizer :)npm install -g
O nome
_
usado pelonode.js
REPL para armazenar a entrada anterior. Escolha outro nome.fonte
Nota: O seguinte funciona apenas para a próxima linha de código e apenas devido a uma coincidência.
Com o Lodash,
Não,
var _ = require('lodash')
pois a Lodash misteriosamente define esse valor globalmente quando necessário.fonte
_
. O resultado de sua última declaração foi a lib lodash. Então_.isArray([])
, funcionará na próxima linha , mas nunca mais.