Замена строк в файле 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

регулярное выражение будет работать во второй раз.

Причина, по которой я это упомянул, заключается в том, что вы упомянули, что пункт назначения относительно источника, который предлагает мне перезаписать.

Другие вопросы по тегам