我制作了一个 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 分钟我会得到预期的输出?
最佳答案
问题是使用了 babel 缓存。
query: {
cacheDirectory: '.babelcache'
}
删除缓存后,我得到了预期的输出
关于javascript - Babel 插件未按预期运行 - 输出并不总是显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41831008/