我制作了一个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分钟,我会得到预期的输出吗?
答案 0 :(得分:2)
问题在于使用了babel缓存。
query: {
cacheDirectory: '.babelcache'
}

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