Gulp Публикация AWS. Как удалить расширение *.html, а затем добавить тип содержимого в текст/html?

Я новичок в глотании. Я использую задачу gulp для публикации AWS. Перед публикацией я хочу переименовать все html файлы без расширения (т.е. удалить расширения).

Затем опубликуйте содержимое с двумя разными заголовками, чтобы для HTML-файлов указать тип содержимого «text/html».

  • ЕСЛИ файл html (у которого я уже удалил расширение html), используйте htmlHeaders, где тип содержимого упоминается как «текст/html»,
  • ИНАЧЕ используйте normalHeaders, если тип содержимого не используется.

Поскольку я уже удалил это расширение файла .html, я не смог найти условие для публикации на основе какого-либо условия.

Код ниже удаляет расширение html, но не добавляет разные заголовки в зависимости от типа файла. Как передать publisher.publish(htmlHeaders) или publisher.publish(normalHeaders) в зависимости от типов файлов?

gulp.task('aws-staging-main', function () {
  var publisher = awspublish.create(
    {
      region: "us-east-1",
      params: {
        Bucket: "<my bucket>"
      },
      accessKeyId: "<my access key>",
      secretAccessKey: "<my secret access key>"
    }
  );

  var normalHeaders = {
    "Cache-Control": "max-age=315360000, no-transform, public",
  };
  var htmlHeaders = {
    "Cache-Control": "max-age=315360000, no-transform, public",
    'Content-Type': 'text/html; charset=utf-8'
  };
  var cfSettings = {
    distribution: '<my distribution>',
      accessKeyId: "<my key>",
      secretAccessKey: "<my secret key>",
    wait: true,
    originPath: '/dist',
  }

  return (
    gulp.src(Paths.DIST_ALL)
      .pipe(rename(function (path){
        if( path.extname === '.html')
              path.extname = "";            
        }))
      .pipe(publisher.publish(normalHeaders));
      .pipe(cloudfront(cfSettings))
      .pipe(awspublish.reporter())
  );
})

person Ajay    schedule 13.09.2018    source источник


Ответы (1)


Чтобы это работало, я создал два разных файла gulp.src для поиска файлов HTML отдельно и других файлов отдельно, а затем объединил их с помощью «merge2», как показано ниже.

var StreamAllExclHtml=gulp.src([Paths.DIST_ALL,Paths.DIST_ALL_NOT_HTML])
                      .pipe(publisher.publish(normalHeaders));

var StreamHtml=gulp.src(Paths.DIST_HTML)
               .pipe(rename(function (path) {
                   if (path.basename != "index") {
                        path.extname = "";
                    }
               }))
              .pipe(publisher.publish(htmlHeaders)); 
  return(
  merge(StreamAllExclHtml,StreamHtml)
  .pipe(publisher.sync('',whitelist.whitelist))
  .pipe(cloudfront(cfSettings))
  .pipe(awspublish.reporter())
)
person Ajay    schedule 19.09.2018