我想设置一个 browsersync 代理,以便将 CSS 和 Javascript 注入任意网站。
但是,我开始使用 browsersync 创建一个简单的代理,试图为我提供我的 _custom.css 文件。
var browserSync = require('browser-sync').create();
browserSync.init({
proxy: {
target: "www.google.com"
},
port: 9000,
serveStatic: ["app/static"],
logLevel: "debug",
files: "app/static/_custom.css",
snippetOptions: {
rule: {
match: /<\/head>/i,
fn: function (snippet, match) {
return '<link rel="stylesheet" type="text/css" href="/_custom.css"/>' + snippet + match;
}
}
}
});
当我直接连接到网络时,这很好用。现在我的问题是,在某些情况下,我在网络后面有一个 http 代理。
通过一些研究我发现,我应该使用 browsersync 选项“中间件”。最后我扩展了我的配置:
var browserSync = require('browser-sync').create();
var proxyMiddleware = require('http-proxy-middleware');
var proxyURL = 'http://192.168.0.55:8080';
var proxy = proxyMiddleware('/', {target: proxyURL, logLevel: 'debug'});
browserSync.init({
proxy: {
target: "www.google.com",
middleware: [proxy]
},
port: 9000,
serveStatic: ["app/static"],
logLevel: "debug",
files: "app/static/_custom.css",
snippetOptions: {
rule: {
match: /<\/head>/i,
fn: function (snippet, match) {
return '<link rel="stylesheet" type="text/css" href="/_custom.css"/>' + snippet + match;
}
}
}
});
但是,它没有用,我不知道问题出在哪里。有时我会得到一个带有无限循环的空白页面。有时浏览器会在代理错误页面停止。
有人能帮我吗?