我正在寻求从咕噜过渡到一口气。但是,我没有找到一种方法来使用livereload支持来提供PHP文件,例如使用挂载的网关(https://www.npmjs.org/package/gateway)。是否有任何插件可以使用gulp任务运行/服务器PHP?
答案 0 :(得分:1)
https://www.npmjs.com/package/gulp-connect-php
https://www.npmjs.com/package/grunt-php
这是我给Gulp的代码:
var gulp = require('gulp'),
livereload = require('gulp-livereload'),
connectPHP = require('gulp-connect-php');
gulp.task('connect', function() {
connectPHP.server({
hostname: '0.0.0.0',
bin: 'C:/php/php.exe',
ini: 'C:/php/php.ini',
port: 8000,
base: 'dev',
livereload: true
});
});
我还设置了exe和ini文件位置。
如果您有兴趣,这是Grunt的代码:
php: {
watch: {
options: {
livereload: true,
bin: 'C:/php/php.exe',
ini: 'C:/php/php.ini',
base: '../development',
port: 8000
}
}
}
我希望它有所帮助!
答案 1 :(得分:0)
我最终使用gulp-connect-php和http-proxy。最后,我的php服务任务看起来像这样:
gulp.task('php-serve', ['styles', 'fonts'], function () {
connect.server({
port: 9001,
base: 'app',
open: false
});
var proxy = httpProxy.createProxyServer({});
browserSync({
notify: 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: '{ip address taken out}:9001' });
} else {
next();
}
}
}
});
// watch for changes
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']);
});