Dựa trên câu trả lời của Atkei cho OSX:
$ brew install fswatch
Chuck tất cả những điều này vào reload.scpt:
function run(argv) {
if (argv.length < 1) {
console.log("Please supply a (partial) URL to reload");
return;
}
console.log("Trying to reload: " + argv[0]);
let a = Application("Google Chrome");
for (let i = 0; i < a.windows.length; i++) {
let win = a.windows[i];
for (let j = 0; j < win.tabs.length; j++) {
let tab = win.tabs[j];
if (tab.url().startsWith("file://") && tab.url().endsWith(argv[0])) {
console.log("Reloading URL: " + tab.url());
tab.reload();
return;
}
}
}
console.log("Tab not found.");
}
Điều đó sẽ tải lại tab đầu tiên mà nó tìm thấy bắt đầu bằng file://và kết thúc bằng đối số dòng lệnh đầu tiên. Bạn có thể tinh chỉnh nó như mong muốn.
Cuối cùng, làm một cái gì đó như thế này.
fswatch -o ~/path/to/watch | xargs -n1 osascript -l JavaScript reload.scpt myindex.html
fswatch -oxuất ra số lượng tệp đã thay đổi trong mỗi sự kiện thay đổi, một tệp trên mỗi dòng. Thông thường nó sẽ chỉ in 1. xargsđọc các 1s đó trong và -n1có nghĩa là nó chuyển từng cái dưới dạng đối số cho một thực thi mới của osascript(nơi nó sẽ bị bỏ qua).