Underscore: バベルできません

作成日 2017年01月05日  ·  5コメント  ·  ソース: jashkenas/underscore

Babelでunderscore.minを変換できません。 gulpを使用すると、すべてのファイルをマージしてからbabelで処理するため、必要ですが、アンダースコアを使用するとエラーが返されます。

ここで試すことができます: https ://babeljs.io/repl/#?babili = false&evaluate = true&lineWrap = false&presets = es2015

右側のパネルの下部に、「uは未定義です」というエラーが表示されます。

duplicate

最も参考になるコメント

「未定義のプロパティ '_'を読み取れません」というメッセージが表示されます。これは異なりますが、壊れています。

どのバージョンのアンダースコアを使用していますか?

これがマスターで修正されたhttps://github.com/jashkenas/underscore/pull/2153に関連しているのではないかと疑っていますが、それを含むリリースはまだ出荷されていません。

マスターのアンダースコアのバージョン(https://github.com/jashkenas/underscore/blob/master/underscore.js)で試して、問題が解決するかどうかを確認できますか?

あなたが見つけたものを教えてください。

全てのコメント5件

「未定義のプロパティ '_'を読み取れません」というメッセージが表示されます。これは異なりますが、壊れています。

どのバージョンのアンダースコアを使用していますか?

これがマスターで修正されたhttps://github.com/jashkenas/underscore/pull/2153に関連しているのではないかと疑っていますが、それを含むリリースはまだ出荷されていません。

マスターのアンダースコアのバージョン(https://github.com/jashkenas/underscore/blob/master/underscore.js)で試して、問題が解決するかどうかを確認できますか?

あなたが見つけたものを教えてください。

最新のバージョン1.8.3を使用しています。 残念ながら、「require」メソッドがサポートされていないため、縮小されていないバージョンを使用することはできません。

エクスポートはブラウザではサポートされていません。node.js/ io.js、browserify / webpackなどのcommonjs環境が必要です。

exportsのエラーはどこにありますか? Babel Webサイトを使用してトランスパイルすると、そのメッセージが表示されますが、コードは正常に見えます。 アンダースコアはexports変数を参照しますが、ノード環境で実行されていることがわかった場合にのみ、 exportsを使用する環境を最初に検出します。

基本的に、その「エラー」は、バベルが一生懸命に役に立たないようにしようとしているだけかもしれません。

さらなる調査の後に編集

私はちょうど気づきました...アンダースコアの実際の最後の行はthisで自分自身を呼び出すことです:

}.call(this));

ただし、Babelによってビルドされた後、最後の行はundefinedを渡すように変更されます。

}.call(undefined));

ES6モジュールでは、 thisundefinedであると想定されているようです(実際のECMA仕様を処理して、それが正しいかどうかを判断するのに苦労していますが)。そのため、Babelが自動的に置き換えます。

StackOverflow:babelが「this」を「undefined」にトランスパイルするのを防ぐ方法

Babelのオンライン通訳のスクリーンショット:

screen shot 2017-02-26 at 9 56 47 pm

私は、これはこのコミットで修正されていると思います: https

ただし、この修正を含む公式リリースはありません。現在のバージョン1.8.3は含まれていません...

このページは役に立ちましたか?
0 / 5 - 0 評価