タグ付けされた質問 「babeljs」

Babel(以前の6to5)はJavaScriptコンパイラです。ES6 + / ES2015コードをES5コードに変換します。

10
Node.jsの使用には、ES6のインポート/エクスポートが必要です。
私が共同で取り組んでいるプロジェクトでは、使用できるモジュールシステムについて2つの選択肢があります。 を使用してモジュールをインポートしrequire、およびを使用module.exportsしてエクスポートしexports.fooます。 ES6を使用したモジュールのインポートimport、およびES6を使用したエクスポートexport どちらを使用してもパフォーマンス上のメリットはありますか?ノードモジュールでES6モジュールを使用する場合に知っておくべきことは他にありますか?

30
Babel 6 regeneratorRuntimeが定義されていません
私は非同期を使用しようとしていますが、Babel 6でゼロから待機していますが、regeneratorRuntimeが定義されていません。 .babelrcファイル { "presets": [ "es2015", "stage-0" ] } package.jsonファイル "devDependencies": { "babel-core": "^6.0.20", "babel-preset-es2015": "^6.0.15", "babel-preset-stage-0": "^6.0.15" } .jsファイル "use strict"; async function foo() { await bar(); } function bar() { } exports.default = foo; async / awaitを使用せずに通常どおり使用しても問題ありません。私が間違っていることはありますか?

11
非同期/待機関数を並行して呼び出す
私が理解している限り、ES7 / ES2016では、複数awaitのをコードに入れることは、promiseのチェーン.then()と同様に機能します。つまり、それらは並列ではなく、次々に実行されます。したがって、たとえば、次のコードがあります。 await someCall(); await anotherCall(); が完了したanotherCall()ときにのみ呼び出されることを正しく理解していsomeCall()ますか?それらを並行して呼び出す最もエレガントな方法は何ですか? Nodeで使用したいので、非同期ライブラリを使用した解決策はありますか? 編集:私はこの質問で提供されている解決策に満足していません:非同期ジェネレーターでのプロミスの非並行待機によるスローダウン、ジェネレーターを使用しているため、より一般的なユースケースについて質問しています。

6
babelとwebpackを使用しているときにソースマップを生成するにはどうすればよいですか?
私はwebpackを初めて使用するので、ソースマップを生成するための設定が必要です。webpack serveコマンドラインから実行していますが、正常にコンパイルされます。しかし、本当にソースマップが必要です。これは私webpack.config.jsです。 var webpack = require('webpack'); module.exports = { output: { filename: 'main.js', publicPath: '/assets/' }, cache: true, debug: true, devtool: true, entry: [ 'webpack/hot/only-dev-server', './src/components/main.js' ], stats: { colors: true, reasons: true }, resolve: { extensions: ['', '.js', '.jsx'], alias: { 'styles': __dirname + '/src/styles', 'mixins': __dirname + '/src/mixins', …

5
ES6のインデックスファイルへのエクスポート/インポート
現在、webpack / babelを介してReactアプリでES6を使用しています。インデックスファイルを使用して、モジュールのすべてのコンポーネントを収集し、それらをエクスポートしています。残念ながら、これは次のようになります。 import Comp1_ from './Comp1.jsx'; import Comp2_ from './Comp2.jsx'; import Comp3_ from './Comp3.jsx'; export const Comp1 = Comp1_; export const Comp2 = Comp2_; export const Comp3 = Comp3_; だから私はこのように他の場所からうまくインポートすることができます: import { Comp1, Comp2, Comp3 } from './components'; 明らかにそれはあまり良い解決策ではないので、他に方法があるかどうか疑問に思いました。インポートしたコンポーネントを直接エクスポートできないようです。

4
Babel 6はデフォルトのエクスポート方法を変更します
以前は、babelが行を追加していましたmodule.exports = exports["default"]。これはもう行われません。これが意味することは、私ができる前のことです。 var foo = require('./foo'); // use foo 今私はこれをしなければなりません: var foo = require('./foo').default; // use foo 大したことではありません(そして、これはそれがずっとあったはずのことだと私は推測しています)。問題は、以前は機能していた方法に依存するコードがたくさんあることです(ほとんどのコードをES6インポートに変換できますが、すべてをインポートできるわけではありません)。私のプロジェクトを通過してこれを修正する必要なしに、古い方法を動作させる方法に関するヒントを誰かに教えてもらえますか? ありがとう! 例: 入力: const foo = {} export default foo Babel 5での出力 "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var foo = {}; exports["default"] = foo; module.exports = exports["default"]; Babel …

13
Nodejs5とbabelでの「予期しないトークンのインポート」?
jsファイルでは、require toの代わりにimport toを使用しました import co from 'co'; インポートは「出荷機能」であり、ランタイムフラグなしでサポートされているため(https://nodejs.org/en/docs/es6/)、nodejsで直接実行しようとしましたが、エラーが発生しました import co from 'co'; ^^^^^^ SyntaxError: Unexpected token import それから私はバベルを使ってみました npm install -g babel-core npm install -g babel-cli npm install babel-core //install to babel locally, is it necessary? とによって実行されます babel-node js.js まだ同じエラーが発生しますが、予期しないトークンのインポート? どうすればそれを取り除くことができますか?

6
lodashをインポートする正しい方法
以下にプルリクエストのフィードバックがありましたが、lodashをインポートする正しい方法はどちらかと思いますか? インポートは 'lodash / has'から行うほうがよいでしょう。それ自体がかなり重いlodash(v3)の以前のバージョンでは、lodashライブラリ全体をインポートするのではなく、特定のモジュール/関数のみをインポートする必要があります。新しいバージョン(v4)については不明です。 import has from 'lodash/has'; 対 import { has } from 'lodash'; ありがとう

4
アロー関数(パブリッククラスフィールド)をクラスメソッドとして使用する方法
ReactでES6クラスを使用するのは初めてですが、以前は現在のオブジェクトにメソッドをバインドしていましたが(最初の例を参照)、ES6を使用すると、クラス関数を矢印でクラスインスタンスに永続的にバインドできますか?(コールバック関数として渡すときに便利です。)CoffeeScriptでできるように使用しようとすると、エラーが発生します。 class SomeClass extends React.Component { // Instead of this constructor(){ this.handleInputChange = this.handleInputChange.bind(this) } // Can I somehow do this? Am i just getting the syntax wrong? handleInputChange (val) => { console.log('selectionMade: ', val); } SomeClass.handleInputChangeたとえばsetTimeout、に渡した場合、スコープはwindowオブジェクトではなくクラスインスタンスにスコープされます。

8
「コードジェネレーターが[一部のファイル]のスタイル設定を最適化解除したため、「100KB」の最大値を超えたのはなぜですか?
プロジェクトに新しいnpmパッケージを追加し、モジュールの1つにそれを必要としました。 今、私はこのメッセージをwebpackから受け取ります、 build modulesNote: The code generator has deoptimised the styling of "D:/path/to/project/node_modules/ramda/dist/ramda.js" as it exceeds the max of "100KB". どういう意味ですか?何かアクションを起こす必要がありますか?
164 webpack  babeljs 

11
ES6 / 2015でのヌルセーフプロパティアクセス(および条件付き割り当て)
そこにあるnullES6(ES2015 / JavaScript.next /ハーモニー)等に-safeプロパティアクセス(nullの伝播/存在)オペレータ?.でのCoffeeScript例えばは?それともES7で計画されていますか? var aThing = getSomething() ... aThing = possiblyNull?.thing これはおおよそ次のようになります。 if (possiblyNull != null) aThing = possiblyNull.thing 理想的には解決策は、(たとえ割り当てるべきではありませんundefined)にaThingあればpossiblyNull、ISnull

11
ES6で記述されたモジュールをNPMに公開する方法は?
モジュールをNPMに公開しようとしていたとき、ES6でモジュールを書き直そうと思ったとき、将来を見据え、ES6を学びました。私はBabelを使用してES5にトランスパイルし、テストを実行しました。しかし、私はどのように進めるかわかりません: トランスパイルして、結果の/ outフォルダーをNPMに公開しますか? 結果フォルダーをGithubリポジトリに含めますか? または、2つのリポジトリを維持します。1つはGithubのES6コード+ gulpスクリプト、もう1つは変換された結果+ NPMのテストです。 つまり、ES6で作成されたモジュールをNPMに公開する一方で、元のコードを参照/フォークできるようにするために、どのような手順を踏む必要がありますか?

7
babel-polyfillライブラリをインストールするにはどうすればよいですか?
ES6のJavaScriptコードをES5にコンパイルするためにBabelを使い始めました。Promiseの使用を開始すると、機能していないようです。BabelのWebサイトには、ポリフィルによる約束のサポートが記載されています。 運がなければ、私は追加しようとしました: require("babel/polyfill"); または import * as p from "babel/polyfill"; これにより、アプリのブートストラップ時に次のエラーが発生します。 モジュール 'babel / polyfill'が見つかりません モジュールを検索しましたが、基本的なことをここで見逃しているようです。また、古くて良いブルーバードNPMを追加しようとしましたが、機能していないようです。 バベルのポリフィルの使用方法は?

14
ES6構文とBabelを使用したJavascriptのエラーの拡張
ES6とBabelでエラーを拡張しようとしています。うまくいっていません。 class MyError extends Error { constructor(m) { super(m); } } var error = new Error("ll"); var myerror = new MyError("ll"); console.log(error.message) //shows up correctly console.log(myerror.message) //shows empty string Errorオブジェクトが正しいメッセージセットを取得することはありません。 Babel REPLで試してください。 今、私はSOでいくつかのソリューションを見ました(たとえば、ここ)が、それらはすべて非常に非ES6-yのようです。それをES6の素敵な方法で行うには?(それはバベルで働いています)

1
Babel 7へのアップグレード:nullのプロパティ「バインディング」を読み取れません
次のコマンドを実行して、Babel 7(6から)にアップグレードしました。 npm remove babel-cli npm install --save-dev @babel/cli @babel/core @babel/preset-env これが私の.babelrcファイルです: { "presets": ["env"] } それから私は走った: babel js/src --out-dir js/dist そして、それは結果として: TypeError: Cannot read property 'bindings' of null at Scope.moveBindingTo (/xyz/node_modules/@babel/traverse/lib/scope/index.js:867:13) at BlockScoping.updateScopeInfo (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:364:17) at BlockScoping.run (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:330:12) at PluginPass.BlockStatementSwitchStatementProgram (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:70:24) at newFn (/xyz/node_modules/@babel/traverse/lib/visitors.js:193:21) at NodePath._call (/xyz/node_modules/@babel/traverse/lib/path/context.js:53:20) at NodePath.call (/xyz/node_modules/@babel/traverse/lib/path/context.js:40:17) …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.