2016-05-31 5 views
3

私は最近私が持っているアイデアについてes-discussという提案を投稿しました。そして今、私はこれを行うバベルプラグインを試してみたいと思います。バーベル6のシンタックスプラグインを書く

ショートバージョン、私がやりたい/これをサポート:

import { x, y, z } as myLib from 'lib'; 

私は偶数babel-types for es2015を変更-or上書きする必要があると思います。

バーベルのdefineTypeの動作や、現在のImportDeclarationの実装方法については、多くのドキュメントや役立つ記事はありません。

具体的には、ImportDeclarationに関連して、ベベルタイプのシステムがどのように機能するかについて、私に指摘できますか?

This repositoryは、babel-syntaxプラグインを構築しているようですが、別の方法(babylonプラグイン経由)を使用しているようです。これはそれを行う方法ですか?

それはバベルの独自の構文プラグインのすべてがどこかにいくつかの動作を切り替えるだけで、空のシェルです見るために少し混乱です:babel-plugin-syntax-class-properties/src/index.js

バベルとバビロンは、私はに大きな感謝を送りたいのですが、驚くべきものですそれを起こしている人々!

答えて

2

残念ながら、Babel/Babylonは現在、任意のカスタム構文拡張をサポートしていません。現在のところ、ステージ0に達していない非公式の構文拡張のPRには興味がありません。多くのプラグインが実行されている時点で実際にうまくいく方法でこれを行う方法は明白ではありません。プラグインがbabylonに直接到達で非公式のAPIを使用していること

https://github.com/mbrowne/babel-dci/blob/a766680b060ab1aa9601c4c14c5b1e0d514ec314/babel-plugin-syntax-dci/src/babylonPlugin.js#L6

import { types as tt } from "babylon/lib/tokenizer/types"; 
import Parser from "babylon/lib/parser"; 

libフォルダがパブリックではなく、サポートされていません。これは、このプラグインが特定の古いバージョンのBabylonに自身を固定している理由です。https://github.com/mbrowne/babel-dci/blob/master/babel-plugin-syntax-dci/package.json#L11

+0

私はbabel-dciプラグインの著者であり、最新のバージョンのBabel(また、私の方法でBablyonを拡張するのは理想的ではありませんでした)が、現在のところ、Babelをフォークする方法があるようです。とにかく、カスタムシンタックスプラグインの将来のサポートに関するニュースを知っている場合に備えて、ここに投稿すると思っています。 –

+0

残念ながら、私がいつでもサポートするとは思っていません。より多くの質問がある場合は、気軽にSlackチャンネルに参加してください。 SOは会話にはあまり適していません。 – loganfsmyth

+0

Flow/JSXなどのカスタム構文はどのように追加されますか? – Matt

関連する問題