Я использую Gulp и BrowserSync для обслуживания моего webapp в localhost:9000
.
Как я могу использовать webapp вместо localhost:9000/some/multi/level/path
?
Gulp + BrowserSync, служит на пути
Ответ 1
В настройках браузера параметры передаются в startPath
, чтобы начать с другого URL-адреса, который '/'.
Это не изменяет то, что ваш сервер обслуживает только путь, с которого начинается BrowserSync.
Ответ 2
Статический сервер Browsersync может быть настроен для обслуживания страниц из любого произвольного подпути. При инициализации статического сервера Browsersync добавьте определение маршрута, где ключ является фрагментом url для соответствия, и значение является каталогом, который будет обслуживаться (путь должен относиться к текущему рабочему каталогу).
Попробуйте что-то вроде этого:
var gulp = require('gulp');
var browsersync = require('browser-sync').create();
gulp.task('watch', function() {
browsersync.init({
files: './*.html',
startPath: '/some/multi/level/path',
server: {
baseDir: '-',
routes: {
'/some/multi/level/path': '.'
}
}
});
});
Запуск gulp watch
запустит Browsersync и откроет страницу с содержимым ./
, отображаемым на url http://localhost:3000/some/multi/level/path
.
baseDir
должен быть установлен на непустую строку и не должен быть допустимым путем. Значения Falsey (null
, false
и пустые строки) не будут работать.
Фрагмент выше - рабочий файл gulpfile и был протестирован против Browsersync v2.18.5 и gulp v3.9.1. Здесь полный текст.
Ответ 3
Кажется, опция недоступна.
startPath
изменит только тот URL, который открывается браузером.
Наконец я придумал простое решение:
Просто создайте символическую ссылку из каталога some/multi/level/path
на your app files
. Затем, перейдя в localhost:9000/some/multi/level/path
, вы получите те же файлы, что и для localhost:9000
Ответ 4
+1.
Для моего тестового сервера я использую gulp -webserver:
gulp.src('./public')
.pipe(webserver({
host: 'localhost',
port: '8000',
path: '/myapp',
fallback: 'index.html'
directoryListing: false,
https: true
}))
Затем я получаю доступ к приложению из
https://localhost:8000/myapp/view
но когда я использую Browsersync для режима dev, я должен использовать
https://localhost:9000/view
Было бы здорово, если бы это было одно и то же, тогда, возможно, я прекратил бы использовать gulp -webserver.