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 -o
xuấ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 1
s đó trong và -n1
có 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).