自家製のシンプルなプラグインバベル

Aようにconsole.logの製造(「混乱」)のような全ての印刷タグコードを削除

Test.jsファイルを変換します

console.log(' こんにちは' ); 
のlet A = ' AS '

バベルファイルplugin.jsを変換します

module.exportsは= 関数(バベル){ 

    CONST {タイプ:T、テンプレート} = バベル。

    CONST keyPathVisitor =(ノード、プロパティ)=> { 
        TEMPせ = ノード
         のための(プロパティのアイテムを聞かせて){
             場合(TEMP [アイテム])
                TEMP = TEMP [アイテム]
             { 
                TEMP = NULL 
                ブレーク
            } 
        } 
        戻りTEMP 
    } 

    CONST =訪問者{
         // 需要访问的节点名
         //アクセスデフォルトのパスは(DOMにたとえ)は、2つのパラメータに注入され、状態
        ExpressionStatement(経路、状態){
             IF(process.env.NODE_ENV === ' 生産' ){
               CONSTノード= path.node;
               // キャスト電流内部ノードへのアクセス、前記コンソールAST解析されたか否かが判定される
              CONST expressionNode = keyPathVisitor(ノード、[ ' ' ]);
               CONST isCallExpression = expressionNode.type === ' CallExpression ' ;
               のiF (isCallExpression){
                 CONSTのobjectName = keyPathVisitor(expressionNode、[ "被呼者' ' オブジェクト' ' 名称' ]);
                 CONST prototypeName = keyPathVisitor(expressionNode、[ ' 呼び出し先' ' プロパティ' ' 名称' ]);
                 IF(objectNameの=== ' コンソール' && prototypeName === ' ログ' ){
                   // 上記の条件は単にノード削除した場合
                  )(path.removeします。
                } 
              } 
            }

        } 
    }。

    リターン{ 
        ビジター
    }。
}。

 

変換:

使用バベル-cliの手動変換、インストールNPM Iバベル-CLI -D

1、変換後のファイルを指定しNPXバベル--plugins ./plugin.js test.js.

成功した変換

図2に示すように、変換.babelrc構成。

{
   プラグイン:[
     ./pluginLog  // ファイル変換バベルの場所
  ] 
}
E:\ワークスペース\バベルの\テスト> NPXバベルtest.js 

ましょう = ' として' ;

 

最後に書かれました:

バベルいわゆるプラグインは、コードを変換するために使用されます。ソースコードへのソースコード。具体的には、それをサポートすることができるコードにコードを認識しません(ブラウザなど)の環境を変革することです。

ES2015(ES5に変換ES6)、バベル・プラグイン成分を返す(デマンドローディングそれ空腹成分)として。

任意のコードでは、私たちが望む形(認識されない場合でも、毒性ハハに変換)に合わせて変換することができます。キー操作ASTを変換することです。

あなたは、まずそのAST構造のソースコードを解析して、(大きなプロジェクトである)ASTのために動作するように変換する必要があります。

AST解析された構造:https://astexplorer.net/

操作AST:https://github.com/jamiebuilds/babel-handbook/blob/master/translations/zh-Hans/plugin-handbook.md#toc-visiting

参考リンク:

https://segmentfault.com/a/1190000013921832

https://www.cnblogs.com/chyingp/p/how-to-write-a-babel-plugin.html

プロジェクトの場所。

https://github.com/18946168254/babel-test.git

 

おすすめ

転載: www.cnblogs.com/fan-zha/p/10980283.html