反应 - 删除仅测试道具

时间:2016-02-16 19:39:15

标签: javascript reactjs babeljs

在我们的代码库中,我们对我们希望在这些测试中可以轻松访问的反应组件的单元和端到端测试使用data-automation-id属性。例如:

<button data-automation-id="sign-up-button" />

虽然这在开发和测试期间很有用,但我想从生产模式中的任何反应组件中剥离此属性。

我们正在使用babel6来转换JSX和es2015代码,因为这是将JSX转换为一系列反应语句的地方,我觉得这需要成为一个babel插件。

有没有人有这样的经历?这样的工具是否已经存在?

1 个答案:

答案 0 :(得分:1)

您可以创建一个可以删除这些属性的babel插件:

export default function ({types: t}) {
  return {
    visitor: {
      JSXAttribute(path) {
        if (path.node.name.name === "data-automation-id") {
          path.remove();
        }
      }
    }
  };
}

http://astexplorer.net/#/o1vWnRkzqF