Gulp:麻烦设置browserSync和Watch

时间:2016-09-16 06:56:36

标签: node.js gulp gulp-watch browser-sync

我正在学习Gulp和NPM,并决定使用浏览器同步和我正在研究的PHP项目(使用XAMPP)来测试自己。我知道Browser-Sync不能与PHP文件一起使用,但我想将它与我的.css文件一起使用(稍后可能会添加Sass)。

我将npm,Gulp,Gulp-watch和Browser Sync安装到我项目的根目录中,一切都很好。

然后我创建了一个gulp.js文件,其中包含以下内容:

var gulp = require('gulp'),
watch = require('gulp-watch'),
browserSync = require('browser-sync').create();

gulp.task('watch', function() {
    browserSync.init({
        server: {
            baseDir: "./"
        }
    });

    watch('css/*.css', function() {
        browserSync.reload();
    });

});

但是,当我gulp watch新浏览器窗口打开但只显示Cannot GET /错误时。

此外,该网址会显示http://localhost:3002/而不是http://localhost:myproejct

我认为这可能与我的baseDir有关,所以尝试了:

baseDir: ""
baseDir: "./"
baseDir: "../myproject"

有人知道我做错了吗?

2 个答案:

答案 0 :(得分:0)

你做的比做你想做的更多。您可以将browsersync用作托管网站顶部的代理层。

请参阅docs

中的以下示例
# Proxy a PHP app + serve static files & watch them
$ browser-sync start --proxy 'mylocal.dev' --serveStatic 'public' --files 'public'

我认为这是您需要的,从您网站的物理根运行它并将mylocal.dev替换为您的php服务器地址

npm install browser-sync -g

browser-sync start --proxy 'mylocal.dev' --serveStatic 'css' --files 'css/*.css'

答案 1 :(得分:0)

您的代码适用于我。假设您的目标HTML文件在手动浏览器中打开时有效:t = int(raw_input("enter Data \n")) if t >= 1 and t <= 10 : data = [] for x in xrange(t): data.append(raw_input()) for x in xrange(t): if len(data[x])>=1 and len(data[x]) <= 10**5 : dcnt = 0 val = data[x] d = len(val) for j in xrange(d - 1,0,-1): if val[j] == val[j-1]: dcnt += 1 val = val[0:j] + val[j+1:10**5] print "%s ====> %s, %d deletions" % (data[x], val, dcnt) else: print "length of string is not withing range :: 1<= length of string <=10**5" continue else: print "T is not withing range :: 1<= T <=10" 错误的一个常见原因是使用除Browsersync的默认期望Cannot Get/之外的索引文件。这可能是你遇到的问题吗?如果需要自定义索引文件,可以设置index.html选项:

index

Fwiw,您也可以更有效地执行此操作,并节省安装browserSync.init({ server: { baseDir: 'mybasedirectorypath', index: 'notindex.html' } }); 的重量(此示例已根据此Browsersync docs example进行了调整和简化):

gulp-watch

至于使用自定义网址,请查看https://github.com/BrowserSync/browser-sync/issues/646,其中包含一些解决方案。