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

标签 javascript node.js reactjs babeljs

我制作了一个 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/

相关文章:

node.js - 'npm start' 返回错误 : "There might be a problem with the project dependency tree"

node.js - 自定义流对象? ( Node )

javascript - 如何重定向到另一个页面并打印警报?

javascript - 无法从 React Form 中的选择组件取回提交的数据

javascript - Web 抓取需要使用/Javascript 警报进行身份验证的内部站点

javascript - 是否可以从另一个页面访问其他网页

javascript - 如何等待在 react.js 中呈现 View 直到 $.get() 完成?

reactjs - 使用不同版本的 React 合并两个 React 应用程序

javascript - 为什么alert/console.log 使用 Jquery 拖放运行不同的数量

javascript - 在 Canvas 上自由绘图变得模糊