首页 > 解决方案 > 在 React 热刷新或文件创建后触发脚本

问题描述

我正在尝试为我当前的项目添加一些代码生成,为了实现这一点,我想在每次更改后触发一个节点脚本,就在 React 重新编译和热重新加载之前,所以这个脚本可以检查某些文件是否已更改并生成输出,所以 React 可以在考虑这个输出的情况下重新编译。

我的问题是这可能吗?如果是,我该如何实施?

例如我已经有文件

export default class A extends Component {
  constructor(props){
    this.name = "A"          
  }    
}

我已经生成了文件

export default class Generated {
  getComponent(name){
     if(name==="A") return new A();
  }
}

现在我添加文件

export default class B extends Component {
  constructor(props){
    this.name = "B"          
  }    
}

我想触发我的代码生成脚本,所以它会像这样改变 Generated 类:

export default class Generated {
  getComponent(name){
     if(name==="A") return new A();
     else if(name==="B") return new B();
  }
}

提前致谢!

标签: javascriptnode.jsreactjscreate-react-app

解决方案


您可以使用chokidar,使用此库,您可以为某个路径设置一个观察者,它会为您设置的事件调用一个监听器,例如

chokidar.watch(YOUR_PATH, OPTIONAL_OPTIONS)
.on('add', YOUR_LISTENER)
.on('change', YOUR_LISTENER)
.on('unlink', YOUR_LISTENER)

我希望它对你有用!


推荐阅读