Всем доброго времени суток. Заранее прошу прощения если что не так.
Постигаю удивительный мир фронтенда и знакомлюсь с gulp. Возникла проблема, решения которой нигде пока не встретил.
Краткая преамбула:
Имеется проект со следующей структурой:
Приложение SPA и по обращению к
localhost:8080 нужно получить страницу index.html
Добавил в gulpfile.js сервер gulp-connect:
gulp.task('connect', function() {
connect.server({
root: 'src',
livereload: true
});
});
Таким образом, при обращении к
localhost:8080 получаю нужную страницу index.html, но
Суть проблемы следующая:
При открытии страницы не загружается нужный мне RequireJS, который находится в соседнем с /src каталоге /bower_components:
...
<script src="../bower_components/requirejs/require.js" data-main="requireConfig"></script>
...
src="../bower_components/requirejs/require.js" работает если просто открывать файл index.html в браузере, но через gulp-connect получается вполне предсказуемая и очевидная ошибка.
Костыльным на мой взгляд решением проблемы стала смена ссылки на
src="bower_components/requirejs/require.js"
и изменение параметра root на
root: '[./src', './'],
Но в сервер попадает весь каталог проекта.
Менее убого:
src="requirejs/require.js"
и
root: '[./src', './bower_components'],
И я так понимаю если в обоих папках в root будет подходящий ресурс src="requirejs/require.js" (или что-то ещё), то начинается лотерея.
Возникает интерес: можно ли настроить gulp-connect таким образом, чтобы в html можно было очевидно указать
src="bower_components/requirejs/require.js"
и включить каталог /bower_components в сервер привязав к запросам типа /bower_components/some/path?