node-with-watch

just like node command with file watch

Usage no npm install needed!

<script type="module">
  import nodeWithWatch from 'https://cdn.skypack.dev/node-with-watch';
</script>

README

node-with-watch

带监控文件变更的 node cli

安装

npm i -g node-with-watch

or

yarn global add node-with-watch

通过命令行 cli 使用说明

node-with-watch some-path.js

等同于执行下面的命令后,当 some-path.js 变更时, 重新执行该命令

node some-path.js

通过 require 使用说明

// 方法一:模拟命令行调用

// 构造参数
process.argv[2] = 'some-path.js'
process.argv[3] = '--some-arg'

// 调用
const watcher = require('node-with-watch/cli')

// 方法二:模拟命令行参数

// 获取基础类
const { NodeWithWatcher } = require('node-with-watch')
const watcher = new NodeWithWatcher

// 调用
/**
 * @define runWithWatch
 * @param {string} path - 运行的文件路径
 * @param {array<string>} [argv] - 命令行参数
 */
watcher.runWithWatch('some-path.js', ['--some-arg'])

// 如果有额外的文件监控需求时,可以使用如下方法

// 添加文件状态监控
watcher.watch(path)

// 移除文件状态监控
watcher.unwatch(path)

// 是否文件在监控中
watcher.isWatched(path)

// 销毁所有监控和调用
watcher.destroy()

其他用法

const { watchFile } = require('node-with-watch')

/**
 * @define watchFile
 * @param {string} path
 * @param {number} [interval = 500]
 * @param {function} listener - ({string} type);  type in [create|change|remove]
 * @return {function} - unwatch
 */
watchFile('some-path.js', (type) => {
  // code
})