Babel插件没有按预期运行 - 并不总是显示输出

时间:2017-01-24 14:41:57

标签: javascript node.js reactjs babel

我制作了一个babel插件,应该找到具有特定名称的所有函数,以获取输入参数。但是,它并没有像我期望的那样运行。

现在我只是console.log预期的参数,但并不总能找到它们。



module.exports = function ({ types: t }) {
    return {
        visitor: {
             CallExpression: function(path) {
                 const node = path.node;
                 console.log("name:", node.callee.name);
                 if(node.callee.name === 'i18n') {
                     const argumentNode = node.arguments[0];
                     if(t.isStringLiteral(argumentNode)){
                         console.log(argumentNode.value);
                     }

                 }
             }
        }
    };
};




事实上,第一个console.log



console.log("name:", node.callee.name);




创造了20个输出,但我期待更多。

.babelrc中,我添加了ast-crawler这样的内容:



{
  "plugins": [
    "babel-plugin-add-module-exports",
    "ast-crawler"
  ],

  "presets": [
    ["es2015"],
    "react",
    "stage-2"
  ]
}




我试图改变顺序,但结果是一样的。

有时我会得到所有预期的输出,但为什么我不总是得到它? babel只缓存我的一些代码,所以如果我等待x分钟,我会得到预期的输出吗?

1 个答案:

答案 0 :(得分:2)

问题在于使用了babel缓存。



query: {
          cacheDirectory: '.babelcache'
        }




删除缓存后,我得到了预期的输出