notification - Gulp+BrowserSync, servir en el camino
gulp sass (4)
+1 en esto.
Para mi servidor de prueba, estoy usando gulp-webserver:
gulp.src(''./public'')
.pipe(webserver({
host: ''localhost'',
port: ''8000'',
path: ''/myapp'',
fallback: ''index.html''
directoryListing: false,
https: true
}))
Luego accedo a la aplicación desde
https://localhost:8000/myapp/view
pero cuando uso Browsersync para el modo dev tengo que usar
https://localhost:9000/view
Sería realmente bueno que fuera igual, entonces quizás dejaría de usar gulp-webserver.
Estoy usando Gulp y BrowserSync para servir mi aplicación web en localhost:9000
.
¿Cómo puedo servir la aplicación web en localhost:9000/some/multi/level/path
lugar?
El servidor estático de Browsersync se puede configurar para servir páginas desde cualquier subruta arbitraria. Al inicializar el servidor estático de Browsersync, agregue una definición de ruta donde la clave es el fragmento de URL para que coincida y el valor sea el directorio a ser servido (la ruta debe ser relativa al directorio de trabajo actual).
Pruebe algo como esto:
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'': ''.''
}
}
});
});
La ejecución de gulp watch
iniciará Browsersync y abrirá una página con los contenidos de ./
muestran en la URL http://localhost:3000/some/multi/level/path
.
baseDir
debe establecerse en una cadena no vacía y no necesita ser una ruta válida. Los valores de Falsey (cadenas null
, false
y vacías) no funcionarán.
El fragmento de arriba es un gulpfile que funciona y fue probado contra Browsersync v2.18.5 y gulp v3.9.1. Aquí está la esencia completa .
En su navegador, las opciones de startPath
pasan en startPath
para que comience en una URL diferente que ''/''.
Esto no cambia lo que su servidor está sirviendo solo la ruta con la que comenzará BrowserSync.
Parece que la opción no está disponible. startPath
solo cambiará la URL que startPath
abre.
Finalmente se me ocurrió una solución simple:
Simplemente cree un enlace simbólico desde el directorio some/multi/level/path
a your app files
. Luego ir a localhost:9000/some/multi/level/path
proporcionará los mismos archivos que ir a localhost:9000