如何使用gulp在每个版本上注入动态时间戳记

时间:2019-06-25 18:53:28

标签: javascript angular gulp

我正在尝试使用gulp向我的html中注入时间戳记。我正在使用Angular7。此时间戳记应该是动态的,并且会根据每次构建进行更改。目前,我有:

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}}变量,它会根据每次构建开始而动态更改?

考虑一下,也许我可以在打字稿文件而不​​是HTML中进行更改?只是一个想法

编辑:决定编辑打字稿文件比直接编辑HTML更好。

打字稿

  timestampBuild: any;

  constructor() { }

  ngOnInit() {
    this.timestampBuild = 'GULPTIMESTAMP'

  }

HTML:

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

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

1 个答案:

答案 0 :(得分:0)

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

另一种选择是对任务使用gulp-inject-string:https://www.npmjs.com/package/gulp-inject-string

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