Encontré algunos errores muy extraños hoy en un paquete de terceros ( natural
) con errores como TypeError: Cannot read property 'without' of undefined
. Esto resulta ser porque importa underscore
así:
var Tokenizer = require('./tokenizer'),
util = require("util"),
_ = require('underscore')._;
Parece que la última versión exporta todo el shebang como una exportación predeterminada, no como un valor con nombre en las exportaciones. Probablemente esté bien... excepto por cualquier paquete que haga lo anterior.
¿Quizás _
todavía debería estar expuesto como un alias para la exportación predeterminada? Cambiar algo tan importante como la API de nivel superior parece un cambio importante (¡no un cambio _menor_ semver!) y, después de todo, muchos paquetes usan underscore
como una dependencia.
El mismo problema aquí... parece que _
se exporta como undefined
: https://github.com/jashkenas/underscore/issues/2835
Haciendo ping a @jgonggrijp : parece que necesitaremos un seguimiento del parche 1.10.2.
Específicamente, creo que fue la eliminación del antiguo código shim para la API de Nodo anterior lo que causó el problema, aquí: https://github.com/jashkenas/underscore/compare/1.9.2...1.10.0# diferencia -0f36b362a0b81d6f4d4bfd8a7413c75dL45-L60
... @jgongrijp : ¿crees que habría algún problema con volver a agregar algo así?
Esto es definitivamente un descuido, lo siento.
@jashkenas su enlace no parece funcionar, así que no puedo ver lo que quiere decir. ¿Quizás algo como esto en el index-default
?
var _ = mixin(allExports);
_._ = _;
export default _;
var _ = mixin(allExports); _._ = _; export default _;
¡Esto es exactamente lo que estaba haciendo! Súper.
Esto debería solucionarse ahora en 1.10.2, que he subido a NPM. Pruébalo y avísame si todo vuelve a la normalidad. Disculpas por la cagada.
@jashkenas eres DIOS! :angel: gracias!
Genial. En ese caso, corregido en https://github.com/jashkenas/underscore/commit/2a932470303157072015d5ab7f26d40b9deb4634.