Замена строк в файле Typescript с помощью gulp-replace
Я пытаюсь вставить версию сборки в мой файл компонента Angular 2, используя задачу gulp-replace. Я получаю версию сборки из переменной процесса process.env.npm_package_version
, Эта часть работает, так как я могу записать значение в консоль и получить ожидаемое значение. Тем не менее, часть моей задачи не работает. Я выполняю replace
задача прежде всего.
Задание:
const replace = require('gulp-replace');
gulp.task('replace', () => {
let version = `${process.env.npm_package_version}`;
gulp.src('src/app/app.component.ts')
.pipe(replace('buildVersion', version))
.pipe(gulp.dest('./'));
});
Источник:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app/app.component.html',
styleUrls: ['./app/app.component.css']
})
export class AppComponent implements OnInit {
constructor() {}
ngOnInit() {}
app = { version: "buildVersion", currentYear: new Date().getFullYear() };
}
1 ответ
gulp dest
неправильно. Рад, что это исправлено.
Кстати, если ваше намерение таково:
1 - скопировать в папку сборки
Все хорошо, работа выполнена, но если ваше намерение таково:
2 - перезаписать оригинал
тогда ваша логика не будет работать во второй раз, потому что вы бы заменили строку "buildVersion", и в этом случае вам может потребоваться заменить на регулярное выражение, например /\d\d.\d\d.\d\d/
И тогда buildVersion в вашем исходном файле может быть просто:
00.00.00
Затем, когда он заменяется на:
01.01.44
регулярное выражение будет работать во второй раз.
Причина, по которой я это упомянул, заключается в том, что вы упомянули, что пункт назначения относительно источника, который предлагает мне перезаписать.