用 gulp-replace 替换 Typescript 文件中的字符串
Replacing strings in Typescript file with gulp-replace
我正在尝试使用 gulp-replace 任务将构建版本插入到我的 Angular 2 组件文件中。我正在从过程变量 process.env.npm_package_version
中检索构建版本。这部分工作正常,因为我能够将值记录到控制台并获得预期值。但是,我任务的 gulp-replace 部分不起作用。我先执行 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() };
}
gulp dest
是错误的。很高兴它已修复。
顺便说一句,如果你的意图是:
1 - 复制到您的构建文件夹
一切顺利,工作完成,但如果您的意图是:
2 - 覆盖原来的
那么你的逻辑将无法在第二次运行,因为你会替换字符串 "buildVersion" 在这种情况下你可能需要替换正则表达式,例如 /\d\d.\d\d.\d\d/
然后原始文件中的 buildVersion 可以是:
00.00.00
那么当它被替换为:
01.01.44
正则表达式在第二轮仍然有效。
我提到它的原因是因为你提到目的地是相对于源的,这对我来说意味着覆盖。
我正在尝试使用 gulp-replace 任务将构建版本插入到我的 Angular 2 组件文件中。我正在从过程变量 process.env.npm_package_version
中检索构建版本。这部分工作正常,因为我能够将值记录到控制台并获得预期值。但是,我任务的 gulp-replace 部分不起作用。我先执行 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() };
}
gulp dest
是错误的。很高兴它已修复。
顺便说一句,如果你的意图是:
1 - 复制到您的构建文件夹
一切顺利,工作完成,但如果您的意图是:
2 - 覆盖原来的
那么你的逻辑将无法在第二次运行,因为你会替换字符串 "buildVersion" 在这种情况下你可能需要替换正则表达式,例如 /\d\d.\d\d.\d\d/
然后原始文件中的 buildVersion 可以是:
00.00.00
那么当它被替换为:
01.01.44
正则表达式在第二轮仍然有效。
我提到它的原因是因为你提到目的地是相对于源的,这对我来说意味着覆盖。