【问题标题】:Prevent TFS from deleting Node Modules on a build/release防止 TFS 在构建/发布时删除节点模块
【发布时间】:2018-04-26 05:43:00
【问题描述】:

我有一个本地 TFS 服务器,我正在尝试加速 Angular 应用程序的 CI/CD。发布过程中最长的部分是 npm 安装,并且在每次触发(或环境发布)时都会删除整个放置文件夹。理想情况下,我不想删除 node_modules 文件夹,因此 npm install 只需要检索新包。

我无法截取设置的屏幕截图,所以我会尽力描述它们。

构建

  1. 复制文件(内容:***、.angular-cli.json)
  2. 发布工件(发布路径 $(build.artifactstagingdirectory))

发布

  1. npm install(工作文件夹 $(System.DefaultWorkingDirectory/app-name/drop/projectartifiacts)
  2. ng 构建(不重要)
  3. 上传(不重要)

我尝试在 Build 上设置 Clean = false、Clean Options = sources。但是,这似乎没有帮助。而且每次搭建环境,还是会破坏之前的drop。

关于如何将放置文件夹保存在 node_modules 文件夹中的任何想法?

感谢您的宝贵时间。

【问题讨论】:

    标签: tfs build azure-pipelines-release-pipeline


    【解决方案1】:

    清理 repo 时无法保留部分源代码。

    为了加快 CI/CD 的速度,您不应启用 Clean 选项。

    一般来说,为了提高您的私人代理的性能,不要清理 回购。在这种情况下,为了获得最大的性能优势,使 确保您也在逐步构建。

    来源链接:Clean the local repo on the agent

    但是,如果这是一个选项,您可以签入 node_modules 文件夹以进行源代码控制。因此,它将在“获取源代码”步骤中检索。同时禁用 Repositoy 和 Build setp 的 clean 选项。

    参考这篇文章:checking in node_modules

    【讨论】:

    • 澄清一下,npm 安装发生在 TFS 的发布管道期间。您的回答似乎是在谈论构建管道。有没有办法防止从早期版本安装的部分 node_modules 被破坏?
    • @MarkDeVerno 否,对于 release 它将从工件中获取源,在下载工件之前它会首先清理工件目录。所以,我们不能保留部分 node_modules 留在那里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 2023-03-08
    • 1970-01-01
    • 2015-04-24
    • 2021-06-15
    • 2021-05-15
    相关资源
    最近更新 更多