例
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/
参考リンク:
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