這一次我要讓每改一次程式、網頁內容,瀏覽器就自動瀏覽將內容同步變成我改過後結果,可以用 browser-sync,
這好處是只有更改才會 refresh,不用透過瀏覽器還要裝 auto-refresh 等外掛每固定時間更新頁面。
安裝 browser-sync
npm install -D browser-sync
編輯 gulpfile.js
// 加入
var browserSync = require('browser-sync').create();
// 把這個
gulp.task("default", ['connect-php']);
// 改成
gulp.task('default', ['connect-php'], function () {
browserSync.init();
gulp.watch(web_home+"**/*.*").on('change', browserSync.reload);
});
再執行 gulp 時它會跟你說要貼上一段 script 在 </body> 前面,才可讓自動 refresh 生效
$ gulp
[17:26:05] Using gulpfile D:\gulptest\gulpfile.js
[17:26:05] Starting 'connect-php'...
[17:26:05] Finished 'connect-php' after 12 ms
[17:26:05] Starting 'default'...
[17:26:05] Finished 'default' after 31 ms
[Browsersync] Copy the following snippet into your website, just before the closing </body> tag
<script id="__bs_script__">//<![CDATA[
document.write("<script async src='http://HOST:3000/browser-sync/browser-sync-client.js?v=2.24.4'><\/script>".replace("HOST", location.hostname));
//]]></script>
[Browsersync] Access URLs:
--------------------------------------
UI: http://localhost:3001
--------------------------------------
UI External: http://192.168.137.1:3001
--------------------------------------
[Browsersync] Reloading Browsers...
就這樣子
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<title>Index</title>
<metacharset="utf-8">
<metahttp-equiv="X-UA-Compatible"content="IE=edge">
<metaname="viewport"content="width=device-width, initial-scale=1">
</head>
<body>
<?php
echo 'wow';
?>
111111
<script id="__bs_script__">//<![CDATA[
document.write("<script async src='http://HOST:3000/browser-sync/browser-sync-client.js?v=2.24.4'><\/script>".replace("HOST", location.hostname));
//]]></script>
</body>
</html>
留言