Gulp PHP BrowserSync 和代理服务器抛出错误
Gulp PHP with BrowserSync and a proxy server throwing error
在 Windows 10 upgrading/reset 之后,我不得不重新下载我所有的开发工具。我似乎无法让我的服务器与 gulp-connect-[=32 一起工作=]、gulp-浏览器同步和 http 代理。任务(下)实际上来自这个答案:.
这是基于 Yeoman 的一代 gulp-webapp。常规 "serve" 有效,但当然不会启动 PHP 文件。我在升级前让它工作,但现在当我尝试调出 URL 时,http-proxy 出错并显示 ECONNREFUSED。请注意,在我真正进入 URL 之前它不会出错,如果任务设置为不自动打开浏览器,则在我进入 localhost:3000.[=15 之前它不会出错=]
知道这个错误的原因吗?
Gulp 任务
gulp.task('php-serve', ['styles', 'fonts'], () => {
phpConnect.server({
port: 9001,
base: 'app',
open: false
});
const proxy = httpProxy.createProxyServer({});
browserSync({
notify: false,
open: false,
port: 9000,
server: {
baseDir: ['.tmp', 'app'],
routes: {
'/bower_components': 'bower_components'
},
middleware: function (req, res, next) {
var url = req.url;
if (!url.match(/^\/(styles|fonts|bower_components)\//)) {
proxy.web(req, res, { target: 'http://127.0.0.1:9001' });
}
else {
next();
}
}
}
});
gulp.watch([
'app/*.html',
'app/*.php',
'app/scripts/**/*.js',
'app/images/**/*',
'.tmp/fonts/**/*'
]).on('change', reload);
gulp.watch('app/styles/**/*.scss', ['styles']);
gulp.watch('app/fonts/**/*', ['fonts']);
gulp.watch('bower.json', ['wiredep', 'fonts']);
});
Gulp 运行 有错误的任务
$ gulp php-serve
[07:30:09] Requiring external module babel-core/register
[07:30:11] Using gulpfile ~\...\gulpfile.babel.js
[07:30:11] Starting 'styles'...
[07:30:12] Starting 'fonts'...
[07:30:12] Finished 'styles' after 1.08 s
[07:30:12] Finished 'fonts' after 306 ms
[07:30:12] Starting 'php-serve'...
[07:30:12] Finished 'php-serve' after 183 ms
[BS] Access URLs:
----------------------------------
Local: http://localhost:9000
External: http://x.x.x.x:9000
----------------------------------
UI: http://localhost:3001
UI External: http://x.x.x.x:3001
----------------------------------
[BS] Serving files from: .tmp
[BS] Serving files from: app
C:\...\node_modules\http-proxy\lib\http-proxy\index.js:119
throw err;
^
Error: connect ECONNREFUSED
at exports._errnoException (util.js:746:11)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19)
我想我知道原因了。
检查或者您的计算机上安装了 php 并添加到您的路径变量中。
打开命令行并输入:
$ php --version
如果returns:
sh.exe": php: command not found
表示没有安装或路径变量中没有
只需安装WAMP/XAMP或MAMP即可安装php
https://www.apachefriends.org/index.html
为了确保它在你的路径中,我喜欢使用 patheditor
https://patheditor2.codeplex.com/
完成这些简单的步骤
1)打开路径编辑器
2) 在 'user' 部分点击 'add'
3) 搜索php.exe所在的文件夹。 (通常是这样的:C:/xampp/php)
4) 再次点击'ok'和'ok'关闭路径编辑器
5) 重新打开你的命令行工具,你会看到 $ php --version 会找到 php.exe
再次尝试 运行 您的 gulp 任务。应该有用!
http-proxy 安装错误 and/or gulp-php-connect。我卸载了它们,清除了 npm 缓存,然后进行了全新安装。之后一切正常。
在 Windows 10 upgrading/reset 之后,我不得不重新下载我所有的开发工具。我似乎无法让我的服务器与 gulp-connect-[=32 一起工作=]、gulp-浏览器同步和 http 代理。任务(下)实际上来自这个答案:
这是基于 Yeoman 的一代 gulp-webapp。常规 "serve" 有效,但当然不会启动 PHP 文件。我在升级前让它工作,但现在当我尝试调出 URL 时,http-proxy 出错并显示 ECONNREFUSED。请注意,在我真正进入 URL 之前它不会出错,如果任务设置为不自动打开浏览器,则在我进入 localhost:3000.[=15 之前它不会出错=]
知道这个错误的原因吗?
Gulp 任务
gulp.task('php-serve', ['styles', 'fonts'], () => {
phpConnect.server({
port: 9001,
base: 'app',
open: false
});
const proxy = httpProxy.createProxyServer({});
browserSync({
notify: false,
open: false,
port: 9000,
server: {
baseDir: ['.tmp', 'app'],
routes: {
'/bower_components': 'bower_components'
},
middleware: function (req, res, next) {
var url = req.url;
if (!url.match(/^\/(styles|fonts|bower_components)\//)) {
proxy.web(req, res, { target: 'http://127.0.0.1:9001' });
}
else {
next();
}
}
}
});
gulp.watch([
'app/*.html',
'app/*.php',
'app/scripts/**/*.js',
'app/images/**/*',
'.tmp/fonts/**/*'
]).on('change', reload);
gulp.watch('app/styles/**/*.scss', ['styles']);
gulp.watch('app/fonts/**/*', ['fonts']);
gulp.watch('bower.json', ['wiredep', 'fonts']);
});
Gulp 运行 有错误的任务
$ gulp php-serve
[07:30:09] Requiring external module babel-core/register
[07:30:11] Using gulpfile ~\...\gulpfile.babel.js
[07:30:11] Starting 'styles'...
[07:30:12] Starting 'fonts'...
[07:30:12] Finished 'styles' after 1.08 s
[07:30:12] Finished 'fonts' after 306 ms
[07:30:12] Starting 'php-serve'...
[07:30:12] Finished 'php-serve' after 183 ms
[BS] Access URLs:
----------------------------------
Local: http://localhost:9000
External: http://x.x.x.x:9000
----------------------------------
UI: http://localhost:3001
UI External: http://x.x.x.x:3001
----------------------------------
[BS] Serving files from: .tmp
[BS] Serving files from: app
C:\...\node_modules\http-proxy\lib\http-proxy\index.js:119
throw err;
^
Error: connect ECONNREFUSED
at exports._errnoException (util.js:746:11)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19)
我想我知道原因了。
检查或者您的计算机上安装了 php 并添加到您的路径变量中。
打开命令行并输入:
$ php --version
如果returns:
sh.exe": php: command not found
表示没有安装或路径变量中没有
只需安装WAMP/XAMP或MAMP即可安装php https://www.apachefriends.org/index.html
为了确保它在你的路径中,我喜欢使用 patheditor https://patheditor2.codeplex.com/
完成这些简单的步骤 1)打开路径编辑器 2) 在 'user' 部分点击 'add' 3) 搜索php.exe所在的文件夹。 (通常是这样的:C:/xampp/php) 4) 再次点击'ok'和'ok'关闭路径编辑器 5) 重新打开你的命令行工具,你会看到 $ php --version 会找到 php.exe
再次尝试 运行 您的 gulp 任务。应该有用!
http-proxy 安装错误 and/or gulp-php-connect。我卸载了它们,清除了 npm 缓存,然后进行了全新安装。之后一切正常。