Мне пришлось заново загрузить все мои инструменты разработчика после обновления / сброса на Windows 10. Кажется, я не могу заставить свой сервер работать с gulp-connect-php, gulp-browser-sync и http-proxy. Задача (ниже) на самом деле из этого ответа: Gulp-webapp работает под управлением BrowserSync и PHP.
Это вершина поколения gulp-webapp от Yeoman. Обычная «подача» работает, но, конечно, не раскручивает PHP-файлы. Я работал до обновления, но теперь http-proxy выдает ошибку ECONNREFUSED, когда я пытаюсь вызвать URL. Обратите внимание, что он не выдаст ошибку до тех пор, пока я на самом деле не перейду к URL-адресу, если задание настроено так, чтобы не открывать браузер автоматически, оно не выдаст ошибку, пока я не перейду к localhost: 3000.
Есть идеи, причина этой ошибки?
Gulp Task
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 Run Task с ошибкой
$ 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
Если он вернется:
sh.exe": php: command not found
Это означает, что он не установлен или отсутствует в переменной пути.
Вы можете установить php, просто установив WAMP / XAMP или MAMP
https://www.apachefriends.org/index.html
Чтобы убедиться, что это на вашем пути, мне нравится использовать patheditor
https://patheditor2.codeplex.com/
Там пройти через эти простые шаги
1) открыть редактор путей
2) нажмите «добавить» в разделе «пользователь»
3) найдите папку, в которой находится php.exe. (обычно что-то вроде: C: / xampp / php)
4) нажмите «ок» и «ок» снова, чтобы закрыть редактор пути
5) снова откройте инструмент командной строки, и вы увидите, что $ php —version найдет php.exe
Попробуйте снова выполнить задание глотка. Он должен работать!
Произошла неправильная установка http-proxy и / или gulp-php-connect. Я удалил их, очистил кэш npm и сделал новую установку. После этого все работало нормально.