Как использовать gulp для внедрения динамической метки времени в каждой сборке - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь использовать gulp, чтобы добавить метку времени в мой HTML при сборке. Я использую Angular 7. Эта временная метка должна быть динамической и изменяться в зависимости от каждой сборки. В настоящее время у меня есть:

timestamp.js

var gulp = require('gulp');
var replace = require('gulp-replace');

var d = new Date();
console.log(d.toString());
var string = d.toString();

gulp.src('src/app/shared/footer/*.html')
  .pipe(replace('GULPTIMESTAMP',string))
  .pipe(gulp.dest('src/app/shared/footer/'));

Принимает все html-файлы в папке нижнего колонтитула (это всего лишь один html-файл) и заменяет все экземпляры GULPTIMESTAMP на текущую временную метку. Однако моя проблема заключается в том, что после его замены я не могу снова запустить файл timestamp.js, поскольку GULPTIMESTAMP уже заменен текущей меткой времени. Есть ли способ иметь переменную {{timestamp}} в моем html-файле, которая динамически изменяется в зависимости от начала каждой сборки?

Думая об этом, может быть, я мог бы изменить его в файле машинописи вместо HTML? Просто мысль

РЕДАКТИРОВАТЬ: решил, что редактирование файла машинописного текста будет лучше, чем редактирование непосредственно в HTML.

Машинопись

  timestampBuild: any;

  constructor() { }

  ngOnInit() {
    this.timestampBuild = 'GULPTIMESTAMP'

  }

HTML:

<div style="color:red">Last Build Timestamp: {{timestampBuild}}  </div>

После запуска сценария значение GULPTIMESTAMP в файле ts должно измениться на текущую временную метку. Но я сталкиваюсь с той же проблемой, когда мне просто нужно динамическое имя.

1 Ответ

0 голосов
/ 25 июня 2019

Вместо прямой замены ключевого слова (GULPTIMESTAMP), вы можете найти его и впоследствии добавить свою метку времени.Затем вы можете снова запустить сценарий и всегда вставить текущую временную метку.Добавьте заполнитель и фиксированную длину, чтобы можно было правильно заменить старую метку времени.

Другой вариант - использовать gulp-inject-string для вашей задачи: https://www.npmjs.com/package/gulp-inject-string

В примерах должно быть указаноу вас достаточно подсказок для выполнения вашей задачи.

...