同时运行gulp&express

设置Gulp,设置节点,表示。 我正在跑步,正在看我的任务。 设置快递,它运行在3001端口,默认的Gulp是3000?

我去localhost:3000,我看到我的index.html,我去localhost:3001(快递端口),我也看到index.html,但没有CSS。 这里发生了什么,我怎样才能在一个端口上工作呢? 可能吗? 我只是保持吞咽和节点服务器运行? js很新。

这里的文件:

的package.json

{ "name": "hour-hour", "version": "0.0.1", "private": true, "description": "Find the best local happy hours and drink specials near you.", "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Corey Maret", "license": "ISC", "devDependencies": { "browser-sync": "^2.12.3", "del": "^2.2.0", "express": "^4.13.4", "gulp": "^3.9.1", "gulp-autoprefixer": "^3.1.0", "gulp-plumber": "^1.1.0", "gulp-rename": "^1.2.2", "gulp-sass": "^2.3.1", "gulp-uglify": "^1.5.3", "jshint": "^2.9.2" }, "dependencies": { "express": "^4.13.4", "express-handlebars": "^3.0.0", "gulp-plumber": "^1.1.0" } } 

server.js

 var express = require('express'), app = express(); var router = express.Router(); app.use(express.static('public')); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); app.listen(3001, function() { console.log('I\'m Listening...') }) 

gulpfile

 /* Required */ var gulp = require('gulp'); var uglify = require('gulp-uglify'); var rename = require('gulp-rename'); var sass = require('gulp-sass'); var browserSync = require('browser-sync').create(); var reload = browserSync.reload; var plumber = require('gulp-plumber'); var autoprefixer = require('gulp-autoprefixer'); /* Scripts Task */ gulp.task('scripts', function(){ gulp.src(['app/js/**/*.js', '!app/js/**/*min.js']) .pipe(plumber()) .pipe(rename({suffix:'.min'})) .pipe(uglify()) .pipe(gulp.dest('app/js')) .pipe(reload({stream:true})); }); /* Sass Task */ gulp.task('sass', function(){ return gulp.src('app/scss/**/*.scss') .pipe(plumber()) .pipe(sass()) .pipe(autoprefixer('last 2 versions')) .pipe(gulp.dest('app/css')) .pipe(reload({stream:true})); }); /* HTML Task */ gulp.task('html', function(){ gulp.src('app/**/*.html') .pipe(plumber()) .pipe(reload({stream:true})); }); /* Browser-Sync Task */ gulp.task('browser-sync', function(){ browserSync.init({ server:{ baseDir: "./app/" } }); }); /* Watch Task */ gulp.task('watch', function(){ gulp.watch('app/js/**/*.js', ['scripts']); gulp.watch('app/scss/**/*.scss', ['sass']); gulp.watch('app/**/*.html', ['html']); }) /* Default */ gulp.task('default', ['scripts', 'sass', 'html', 'browser-sync', 'watch']); 

您必须在代理模式下运行browser-sync

 gulp.task('browser-sync', function() { browserSync.init({ proxy: "localhost:3001" }); }); 

现在,先运行server.js然后吞下,然后你将只有一个服务器运行(浏览器同步会给你使用的URL)。

您的快速服务器正在提供名为public的目录,但BrowserSync正在提供app 。 尝试在server.js中将public重命名为app

 var express = require('express'), app = express(); var router = express.Router(); app.use(express.static('app')); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); app.listen(3001, function() { console.log("I'm Listening...") }) 

顺便说一下,Gulp 不是服务器 。 把它默认为一个端口是没有意义的。 BrowserSync是一个实时重载服务器,由Gulp运行,它是一个简单的任务运行器。