在 React 热刷新或文件创建后触发脚本
Trigger script on React hot refresh or after file creation
我正在尝试为我当前的项目添加一些代码生成,并且为了实现这个我想在每次更改后触发一个节点脚本,就在 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"
}
}
我想触发我的代码生成脚本,所以它会像这样改变生成的class:
export default class Generated {
getComponent(name){
if(name==="A") return new A();
else if(name==="B") return new B();
}
}
提前致谢!
您可以使用chokidar,通过这个库,您可以为特定路径设置一个监听器,它会为您设置的事件调用一个监听器,例如
chokidar.watch(YOUR_PATH, OPTIONAL_OPTIONS)
.on('add', YOUR_LISTENER)
.on('change', YOUR_LISTENER)
.on('unlink', YOUR_LISTENER)
希望对你有用!
我正在尝试为我当前的项目添加一些代码生成,并且为了实现这个我想在每次更改后触发一个节点脚本,就在 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"
}
}
我想触发我的代码生成脚本,所以它会像这样改变生成的class:
export default class Generated {
getComponent(name){
if(name==="A") return new A();
else if(name==="B") return new B();
}
}
提前致谢!
您可以使用chokidar,通过这个库,您可以为特定路径设置一个监听器,它会为您设置的事件调用一个监听器,例如
chokidar.watch(YOUR_PATH, OPTIONAL_OPTIONS)
.on('add', YOUR_LISTENER)
.on('change', YOUR_LISTENER)
.on('unlink', YOUR_LISTENER)
希望对你有用!