gulp - 如何更改浏览器同步的端口
问题描述
我试用了 npm 包 browser-sync 并将其与 gulp 一起使用。但是我遇到的问题是,每次使用端口 3000 时,我的浏览器同步都会使用端口 3000。在尝试如何更改它的过程中,我让他更改端口……但他认识到 8080 被 xampp 阻止并使用 8081 或 8082。但这无济于事......如果我每次都需要手动更改 URL 字段中的端口,我也可以完全忘记浏览器同步。有没有办法让浏览器同步识别我使用 Xampp 并且他应该去这个 xampp 端口?
我使用 Browsersync 2.26.14、Gulp 4.0.2、npm 7.17.0 和 composer 2.1.3。
我在 gulpfile 中的 browserSync 函数如下所示:
function browserSyncServer (done) {
browserSync.init({
open: false,
injectChanges: true,
server: { //server variable set elsewhere
baseDir: './',
proxy: "https://localhost/united-in-faith",
port: 8080,
online: true
},
ui: {
port: 8082
}
});
done();
}
但我必须说它变得更糟......经过一些尝试后,他甚至不再更改端口并保持在 3000 (不管我在 gulpfile 中给他什么)。
这就是整个 gulpfile:
const { src, dest, watch, task, series, parallel } = require('gulp');
var sass = require('gulp-sass');
var cleanCSS = require('gulp-clean-css');
var uglify = require('gulp-uglify');
var concat = require('gulp-concat');
var postcss = require('gulp-postcss');
var autoprefixer = require('autoprefixer');
var sass = require('gulp-sass');
var browserSync = require('browser-sync').create();
var scssOrigin = 'scripts/scss/*.scss';
var jsOrigin = 'scripts/js/*.js';
var scssDestination = 'build/css';
var jsDestination = 'build/js';
var scssDestinationMin = 'build/css/';
var jsDestinationMin = 'build/js';
var phpDestination = 'build/php/*.php';
var htmlDestination = 'build/html/*.html';
var appCssMin = 'app.min.css';
var appJsMin = 'app.min.js';
var appJs = 'app.js';
var appCss = 'app.css';
var watchJs = './scripts/js/*.js';
var watchCss = './scripts/scss/*.scss';
function js() {
return src(jsOrigin)
.pipe(concat({ path: appJsMin}))
.pipe(uglify())
.pipe(dest(jsDestinationMin));
}
function css() {
var processors = [
autoprefixer,
];
return src(scssOrigin, { sourcemaps: true})
.pipe(cleanCSS())
.pipe(postcss(processors))
.pipe(sass({ outputStyle: "expanded" }).on('error', sass.logError))
.pipe(concat(appCssMin))
.pipe(uglify())
.pipe(dest(scssDestinationMin))
.pipe(browserSync.stream());
}
function cssNoMin () {
return src(scssOrigin, { sourcemaps: true})
.pipe(concat(appCss))
.pipe(sass({ outputStyle: "expanded" }).on('error', sass.logError))
.pipe(dest(scssDestinationMin));
}
function jsNoMin () {
return src(jsOrigin)
.pipe(concat({ path: appJs }))
.pipe(dest(jsDestinationMin))
.pipe(browserSync.stream());
}
function browserSyncServer (done) {
browserSync.init({
open: false,
injectChanges: true,
server: { //server variable set elsewhere
baseDir: './',
proxy: "https://localhost/united-in-faith",
port: 8080,
online: true
},
ui: {
port: 8082
}
});
done();
}
function browserSyncReload (done) {
browserSync.reload();
done();
}
function publish () {
return src(scssOrigin, { sourcemaps: true})
.pipe(cleanCSS())
.pipe(sass({ outputStyle: "expanded" }).on('error', sass.logError))
.pipe(concat(appCss))
.pipe(dest(jsDestination))
.pipe(src(jsOrigin))
.pipe(concat({ path: jsDestination}))
.pipe(uglify())
.pipe(dest(jsDestinationMin))
.pipe(src('*php'))
.pipe(src('sites/*php'))
.pipe(dest('build/php'))
.pipe(src('*html'))
.pipe(dest(htmlDestination))
.pipe(browserSync.stream());
}
function watch_files () {
watch('*.php', browserSyncReload);
watch([watchJs,watchCss], series(css, js, browserSyncReload));
}
function watchNoMin () {
watch('*.php', browserSyncReload);
watch([watchJs,watchCss], series(cssNoMin, jsNoMin , browserSyncReload));
}
task("default", parallel(css,js ,browserSyncServer));
task("all", parallel(css,js));
task("css", css);
task("js", js);
task("watch", series(browserSyncServer, watch_files,));
task("css-no-min", cssNoMin);
task("js-no-min", jsNoMin);
task("watch-no-min", watchNoMin);
task("publish", publish,browserSyncServer);
解决方案
推荐阅读
- arduino - 如何通过 Arduino 将 16 位整数写入 SRAM?
- python-3.x - 如何在mysql Where子句中传递变量
- python - 在导致代码缩放问题python的函数中使用telnet的问题
- filter - 无法将过滤后的 Vec 收集到自身中
- visual-studio-2015 - 如何解决VS2015运行很多main()函数的问题?
- django - 有没有办法确定属性是 django 模型中的选择/选择?
- javascript - 如何在javascript中修剪不需要的连续字符串?
- firebase - 使用 Firebase 和 Flutter 通过 OTP 验证电话号码
- html - Chrome不显示css background-img
- r - R ggplot 传说的顺序