Я пишу задачу gulp, чтобы заменить локальные ссылки библиотек, используемых в разработке, для замены на общедоступные ссылки CDN. Это часть моего файла index.html.Gulp cdnizer не работает с относительной ссылкой
<script src="../bower_components/jquery/dist/jquery.js"></script>
<script src="../bower_components/angular/angular.js"></script>
Глоток задача, которую я пишу использует gulp-cdnizer
gulp.task('cdn', function() {
return gulp.src('.tmp/serve/index.html')
.pipe(cdnizer([
'google:angular',
'cdnjs:jquery'
]))
.pipe(gulp.dest('dist'));
});
Он должен генерировать следующий вывод
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script><script>if(!(window.jQuery)) cdnizerLoad("bower_components/jquery/dist/jquery.js");</script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script><script>if(!(window.angular)) cdnizerLoad("bower_components/angular/angular.js");</script>
Но это работает только тогда, когда я извлекаю ведущий «../» из ссылки добавлены в вход HTML-файл
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/angular/angular.js"></script>
Какие изменения необходимо внести в задачу gulp cdn для достижения желаемого результата с использованием предыдущего ввода HTML.
Редактировать
структура папок, как это.
спасибо за ваш ответ, я пытался, но не мог реально получить на выходе. Добавлена структура папок для вашей справки. – Vibhanshu
Если это ваша структура проекта, то почему ваш код говорит 'gulp.src ('/ index.html')' вместо 'gulp.src ('. Tmp/serve/index.html')'? Прочитайте [this] (http://stackoverflow.com/help/mcve) и повторите свой вопрос. –
Я написал 'gulp.src ('/ index.html')', чтобы показать его просто, но в фактическом коде я использовал правильное место. Он работал так, как вы предполагали ранее. 'relativeRoot: 'gulp /'' - это опция, которую мне нужно добавить. Моя задача cdn внутри 'projectDir/gulp/cdn.js' Еще раз спасибо. – Vibhanshu