在日常前端开发中,经常需要监听文件的变化,例如自动编译 Less 或者打包,自动刷新浏览器等。Node.js 中的 fs 模块提供了读写文件的操作,但并不能实现文件变化的监听。这时候就需要借助第三方包,比如 fs-watch-exec。本文将介绍如何使用 fs-watch-exec 包进行文件变化的监听。
安装
使用 npm 进行包安装:
npm install fs-watch-exec --save-dev
-fs-watch-exec 是一个专门用于监听文件变化并且并行执行 shell 脚本的 Node 工具。
API
fs-watch-exec 提供了以下构造函数:
constructor(options: Options);
options 可以包含以下属性:
- filepaths: 要监听的文件路径,必须是字符串或者字符串数组。
- cwd: 当前工作目录,默认为 process.cwd()
- delay: 延迟重新运行的时间(毫秒)。默认值为 2000。
- ignored: 忽略文件的正则匹配。
- debounce: 间隔多少时间重新运行。默认为 500 毫秒。
- onStart: 进程启动时运行的 shell 脚本。
- onReady: 进程 ready 时运行的 shell 脚本。
- onEvent: 文件变化时运行的 shell 脚本。
示例
以下是一个示例,它将监听 HTML 与 CSS 文件的变化,然后自动重启 Python 服务器,并在项目目录下运行 gulp 命令:
const Watcher = require('fs-watch-exec'); const watcher = new Watcher({ filepaths: ['./dist/*.js', './dist/*.html'], ignored: /(\.git\/|node_modules\/)/, onStart: 'python server.py', onReady: 'gulp build', onEvent: 'python server.py' });
上面代码中,Watcher 构造函数的 options 对象有三个属性:
- filepaths: 要监听的文件路径,为数组形式,
- ignored: 正则表达式匹配出要忽略的文件,
- onStart: shell 脚本 在进程启动时运行,
- onReady: shell 脚本在进程 ready 时运行,
- onEvent: shell 脚本在文件变化时运行。
以上配置将在监视的文件发生变更时分别执行 Python 脚本并重新构建应用程序。
总结
fs-watch-exec 是一个绝佳的 Node.js 包,方便地实现了文件监听和执行不同的 shell 命令。学习这个包的使用将对前端的开发工作带来极大的便利,可以帮助我们实现自动化的构建、刷新等重要功能。在实践中,我们可以根据不同的项目需要来设置需要监听的文件和执行的命令,以达到最佳的应用效果。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60065f89238a385564ab6d6a