【问题标题】:How to transform/modify a js file during a release in Azure DevOps如何在 Azure DevOps 发布期间转换/修改 js 文件
【发布时间】:2019-11-22 13:36:35
【问题描述】:

场景/当前状态:我有一个在 Azure DevOps 上的 Angular 5 项目。我从同一个分支(主)推送到开发/测试和生产。我为我的构建设置了 environment.ts 文件,因此当我从 master 构建项目时,它会根据我构建的环境来选择 BaseAPIURL。我的 master 分支始终使用使用 run-script build --env=dev 的命令。

我想要实现的目标:我想针对不同的环境制定一个构建和多个“发布”计划。默认情况下,在构建时,所有 Angular 代码都会转换为我的“dist”文件夹中的 .js 文件。环境变量存在于main.bundle.js 中。如何在发布期间转换/修改该文件?

【问题讨论】:

  • 我认为任何 JS 代码在构建后修改是个坏主意。有一个选项可以使用APP_INITIALIZER 工厂,它可以从任何地方获取一些配置(我通过http.getassets 文件夹中的json 文件获取它),您可以在其中设置所有环境及其相应的设置。然后你只需要选择你需要的。
  • APP_INITIALIZER 能否获取在 DevOps Azure 上为各个版本定义的变量?
  • 不确定。试着检查一下。
  • @HereToLearn_ 你检查我的答案了吗?

标签: javascript angular azure-devops angular5 azure-pipelines


【解决方案1】:

我同意 Sergey,不建议这样做,但我过去在 Angular 项目中这样做过。

很简单,安装Replace Tokens 扩展,在你的environment.ts 文件中为值放置一个占位符,例如:

baseUrl = __baseUrl__

在发布管道中,为每个具有不同值的环境添加一个变量baseUrl

现在在每个发布环境(阶段)中添加替换令牌任务并将其配置为搜索模式__{variable}__

对所有变量都这样做(只需将它们添加到变量选项卡中并将占位符放入文件中)。

如果您想使用 APP_INITIALIZER,您可以阅读 this 帖子,该帖子解释了如何使用 Azure DevOps 进行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    相关资源
    最近更新 更多