我想调整这段代码来提供PHP文件。我让 MAMP 运行本地服务器,但我无法弄清楚这段代码是如何工作的,以便进行必要的更改。我知道 Node 服务器不会解释 PHP 文件,但我对这种使用 serve-static
和 serve-index
的架构感到困惑,因为显然我不能只使用 MAMP 本地主机中的本地文件路径来提供这些文件,对吧?我也想知道为什么它需要 2 个端口(9000 和 35729)。
gulp.task('connect', ['styles'], function () {
var serveStatic = require('serve-static');
var serveIndex = require('serve-index');
var app = require('connect')()
.use(require('connect-livereload')({port: 35729}))
.use(serveStatic('.tmp'))
.use(serveStatic('app'))
.use('/bower_components', serveStatic('bower_components'))
.use(serveIndex('app'));
require('http').createServer(app)
.listen(9000)
.on('listening', function () {
console.log('Started connect web server on http://localhost:9000');
});
});
gulp.task('serve', ['connect', 'watch'], function () {
require('opn')('http://localhost:9000');
});
gulp.task('watch', ['connect'], function () {
$.livereload.listen();
// watch for changes
gulp.watch([
'app/*.php',
'.tmp/styles/**/*.css',
'app/scripts/**/*.js',
'app/images/**/*'
]).on('change', $.livereload.changed);
gulp.watch('app/styles/**/*.scss', ['styles']);
gulp.watch('bower.json', ['wiredep']);
});
我基本上想使用 PHP 为网站模板(页脚、页眉等),就像这个人在这里发布的那样。
我有一种感觉,人们不再这样做了,所以欢迎任何关于使用静态资产和模板进行前端开发的建议(以便以后适应WordPress或其他基于PHP的CMS)。
编辑
请阅读以下内容:运行 BrowserSync 和 PHP 的 Gulp-webapp
我使用我的本机PHP安装作为服务器,而不是使用"gulp-connect-php"插件启动此服务器。我还没有在XAMPP/MAMP中使用它,但是可能你只需要将"bin"和"ini"重新定位到XAMPP/MAMP的PHP安装中。但是我没有如何将Gulp与您的数据库连接的解决方案。
'gulp-connect-php' 插件:
https://www.npmjs.com/package/gulp-connect-php
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
});
});
Gulp Connect只能启动Node服务器(如果我没记错的话)。
端口 35729 用于实时加载 javascript,您需要将其放置在 PHP、HTML 文件的底部,在那里放置其他脚本。咕噜咕噜也使用完全相同的代码:
<script src="//localhost:35729/livereload.js"></script>
端口 9000 可能是 Gulp Connect 服务器的已定义端口。