Javascript 如何使用gulp在每个构建上注入动态时间戳

Javascript 如何使用gulp在每个构建上注入动态时间戳,javascript,angular,gulp,Javascript,Angular,Gulp,我正在尝试使用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/share

我正在尝试使用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已经被当前时间戳替换。有没有一种方法可以在我的html中包含一个{timestamp}}变量,该变量会根据每次构建开始进行动态更改

考虑一下,也许我可以在typescript文件中更改它,而不是在HTML中?只是一个想法

编辑:决定编辑typescript文件比直接编辑HTML要好

打字稿

  timestampBuild: any;

  constructor() { }

  ngOnInit() {
    this.timestampBuild = 'GULPTIMESTAMP'

  }
HTML:

上次生成时间戳:{{timestampBuild}

运行脚本后,ts文件中的GULPTIMESTAMP应更改为当前时间戳。但我遇到了同样的问题,我只想要一个动态名称。

您可以搜索它,然后插入时间戳,而不是直接替换关键字(
GULPTIMESTAMP
)。然后,您可以再次运行脚本并始终插入当前时间戳。添加占位符和固定长度,以便能够正确替换旧的时间戳

另一个选项是在任务中使用gulp inject string:


这些示例应该为您提供足够的提示以完成任务。

您可以搜索关键字,然后插入时间戳,而不是直接替换关键字(
GULPTIMESTAMP
)。然后,您可以再次运行脚本并始终插入当前时间戳。添加占位符和固定长度,以便能够正确替换旧的时间戳

另一个选项是在任务中使用gulp inject string:


这些示例应该为您提供足够的提示以完成任务。

您能否举例说明替换前后如何以及在何处使用
GULPTIMESTAMP
变量。@Mark,我编辑了我的回答,但本质上,Typescript文件中的GULPTIMESTAMP只使用了一次,然后被时间戳替换。我希望它位于一个更容易自动替换的属性中,无论该属性当时包含什么。你能在替换步骤中使用一个正则表达式来查找
GULPTIMESTAMP
和一个实际的时间戳吗?这应该很简单。你能举个例子说明在替换前后如何使用
GULPTIMESTAMP
变量吗。@马克,我编辑了我的回答,但本质上,Typescript文件中的GULPTIMESTAMP只使用了一次,然后被时间戳替换。我希望它位于一个更容易自动替换的属性中,无论该属性当时包含什么。你能在替换步骤中使用一个正则表达式来查找
GULPTIMESTAMP
和一个实际的时间戳吗?这应该很简单。
<div style="color:red">Last Build Timestamp: {{timestampBuild}}  </div>