Можно ли убрать расширение страниц в url через browser-sync?

Да, с помощью Gulp.js и BrowserSync можно убрать расширение страниц в URL.

BrowserSync — это инструмент для разработки веб-приложений, который предоставляет функцию автоматической перезагрузки страницы в браузере при внесении изменений в исходный код. Он также позволяет синхронизировать просмотр веб-страниц на разных устройствах и браузерах одновременно.

Чтобы убрать расширение страниц в URL, необходимо настроить BrowserSync с помощью опций прокси и middleware.

Ниже приведен пример настройки Gulp.js с использованием BrowserSync для удаления расширения .html из URL:

const gulp = require('gulp');
const browserSync = require('browser-sync').create();
const urlRewrite = require('gulp-url-rewrite');

// Задача для удаления расширения .html из URL
gulp.task('removeExtension', function() {
  return gulp.src('./dist/**/*.html')
    .pipe(urlRewrite({
      ext: '.html',
      callback: function(url) {
        return url.slice(0, -5); // удаляем последние 5 символов (.html)
      }
    }))
    .pipe(gulp.dest('./dist'));
});

// Задача для запуска BrowserSync
gulp.task('browserSync', function() {
  browserSync.init({
    server: {
      baseDir: './dist'
    },
    middleware: [
      require('connect-history-api-fallback')()
    ]
  });
});
   
// Задача для отслеживания изменений в исходных файлах
gulp.task('watch', function() {
  gulp.watch('./src/**/*.html', gulp.series('removeExtension'));
  gulp.watch('./dist/**/*.html').on('change', browserSync.reload);
});

// Задача по умолчанию
gulp.task('default', gulp.parallel('removeExtension', 'watch', 'browserSync'));

В данном примере создается задача removeExtension, которая с помощью плагина gulp-url-rewrite удаляет расширение .html из URL. Затем запускается задача browserSync, которая настраивает сервер BrowserSync на каталог ./dist. Задача watch отслеживает изменения в исходных файлах и перезапускает BrowserSync при их изменении.

После выполнения команды gulp в командной строке, BrowserSync будет запущен на локальном сервере по адресу http://localhost:3000 (адрес может отличаться в зависимости от настроек). При открытии веб-страницы, расширение .html будет автоматически удалено из URL.

Важно отметить, что для правильной работы данной настройки, необходимо чтобы ваш сервер был настроен так, чтобы при запросе без расширения .html он все равно возвращал соответствующую веб-страницу. Также нужно учитывать, что удаление расширения может привести к конфликтам при обращении к файлам с одинаковыми именами (например, файлы index.html и index.css).