【问题标题】:Node.js package script that runs every time a file is changed每次更改文件时运行的 Node.js 包脚本
【发布时间】:2021-09-17 20:57:27
【问题描述】:

我正在开发一个 node.js 包,它会为我生成一些样板代码。

我能够创建这个包,如果我运行每个单独的模块,它可以正常工作并按预期生成代码。

我现在的想法是将这个包导入另一个项目并让它生成代码。

我不知道如何实现这一点,甚至不知道它是否可能。

完美的解决方案是,每次更改一组文件夹中的文件时,它都会运行包并生成文件,但如果这不可能,也可以公开或命令手动生成这些文件.

我创建了一个脚本来运行生成器脚本,但它只适用于包本身,而不是在我将它导入另一个项目时。

谢谢

【问题讨论】:

    标签: node.js filesystems node-modules watch


    【解决方案1】:

    我想你想要fs.watch() 函数。当文件(或目录)发生变化时,它会调用回调。

    import { watch } from 'fs';
    
    function watchHandler (eventType, filename) {
      console.log(`event type is: ${eventType}`)  /* 'change' or 'rename' */
      if (filename) {
        console.log(`filename provided: ${filename}`)
      } else {
        console.log('filename not provided');
      }
    }
    
    const options = { persistent: true }
    
    const watcher = fs.watch('the/path/you/want', options, watchHandler)
    ...
    watcher.close()
    

    您可以在您的 nodejs 应用程序中使用它来为涉及代码生成问题的每个文件调用 watchHandler()。

    【讨论】:

    • 感谢您的帮助,但这并不意味着我必须在导入生成代码的包的每个项目中实现此功能?最初的想法只是将生成代码的包导入另一个项目,瞧,它应该自动生成代码,或者至少公开一个命令来进行代码生成。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    相关资源
    最近更新 更多