今日、サードパーティのパッケージ( natural
)で、 TypeError: Cannot read property 'without' of undefined
のようなエラーを伴う非常に奇妙なバグに遭遇しました。 これは、次のようにunderscore
をインポートするためであることがわかります。
var Tokenizer = require('./tokenizer'),
util = require("util"),
_ = require('underscore')._;
最新バージョンでは、エクスポートの名前付きの値としてではなく、デフォルトのエクスポートとしてシバン全体がエクスポートされているようです。 上記を実行するパッケージを除いて、それはおそらく問題ありません。
おそらく_
は、デフォルトのエクスポートのエイリアスとして引き続き公開する必要がありますか? トップレベルAPIのように大きな変更は、大きな重大な変更のように見えます(_マイナー_semverの変更ではありません!)。結局、 underscore
は、そこにある多くのパッケージによって依存関係として使用されます。
ここで同じ問題.. _
がundefined
としてエクスポートされているようです: https ://github.com/jashkenas/underscore/issues/2835
@jgonggrijpにpingを送信—1.10.2パッチのフォローアップが必要なようです。
具体的には、問題の原因となったのは以前のNode APIの古いシムコードの削除だったと思います: https ://github.com/jashkenas/underscore/compare/1.9.2...1.10.0#
... @jgonggrijp —そのようなものを追加し直すことに問題があると思いますか?
これは間違いなく見落としです、申し訳ありません。
@jashkenasあなたのリンクが機能していないようですので、あなたが何を意味しているのかわかりません。 おそらくindex-default
でこのようなものですか?
var _ = mixin(allExports);
_._ = _;
export default _;
var _ = mixin(allExports); _._ = _; export default _;
これはまさに私がやっていたことです! 素晴らしい。
これは、私がNPMにプッシュした1.10.2で修正されるはずです。 それを試してみて、すべてが正常に戻ったかどうかを知らせてください。 失敗をお詫びします。
@jashkenas ur GOD! :angel:ありがとう!