我有两个Gulp任务:
function changeAPIEnvDirectoryForProd() {
return src('src/app/modules/models/ApiUrl.ts', { base: "src/app/modules/models/" })
.pipe(replace('../../../environments/environment', '../environments/environment')).pipe(
dest('src/app/modules/models/', {overwrite: true})
);
}
function changeAPIEnvDirectoryForLocal() {
return src('src/app/modules/models/ApiUrl.ts', { base: "src/app/modules/models/" })
.pipe(replace('../environments/environment', '../../../environments/environment')).pipe(
dest('src/app/modules/models/', {overwrite: true})
);
}
两者都取决于环境,一个用于生产,另一个用于本地开发。
我遇到的问题是,如果在我的文件中有:
import { environment } from '../../../environments/environment'
export class Apis {
static bo = `${environment.boAPIUrl}/api/v1/bo`;
}
[当我运行changeAPIEnvDirectoryForLocal
任务时,它将以前的代码替换为:
import { environment } from '../../../../../environments/environment'
这是因为根据我的代码,它应该保持不变。我认为问题在于替换搜索这两个字符串是相同的:
../../../environments/environment
和
../environments/environment
反正有指定确切匹配的地方吗?
最简单的方法是在搜索词中包含'
,如下所示:
.pipe(replace("'../../../environments/environment'", 'environments/environment'))
现在它将只查找整个学期。