2016-05-21 11 views

Antwort

0

Im Folgenden werden zwei verschiedene Möglichkeiten, es zu tun (entweder mit dem Programm Besucher oder mit dem FunctionDeclaration Besucher):

export default function ({types: t}) { 
    return { 
    visitor: { 
     Program(path) { 
     path.scope.rename('doSomething', '___doSomething'); 
     }, 
     FunctionDeclaration(path) { 
     if (path.node.id.name === 'doSomething') { 
      path.node.id.name = '___doSomething' 
     } 
     } 
    } 
    }; 
} 

Beachten Sie, dass Diese sind nicht sicher, da sie einen vorhandenen Namen überschreiben können. Sie können den Befehl path.scope.generateUidIdentifier("uid"); verwenden, um einen eindeutigen Bezeichner zu generieren und diesen zu verwenden, aber Sie können den generierten Namen nicht definieren.

Beispiel - http://astexplorer.net/#/o5NsNwV46z/1

0

Sie können den AST des Codes in astexplorer bekommen. Und Sie können sehen, dass es sich um CallExpression und MemberExpression handelt. Suchen Sie also babel-types API in babel-types source code, es ist sehr klar, wie man eine babel Art zu schaffen oder einen babel-Typ wie folgt zu beurteilen:

Verwandte Themen