【问题标题】:How to run npm command on azure app service after deployment success by VSTS?VSTS部署成功后如何在azure app服务上运行npm命令?
【发布时间】:2017-11-06 20:34:25
【问题描述】:

现在我可以从 VSTS 部署到 azure,但是部署成功后我无法运行 npm。

现在它的工作方式类似于 -> 为分支文件运行 npm install => zip => 复制到 azure => 部署。

我想将 npm run custom-comand 添加到此链的末尾。 怎么做?

【问题讨论】:

  • 在 Azure 应用服务上运行 npm 命令是什么意思?
  • 我有 node js 应用程序。我需要部署它。因此,我需要从 git 上传文件并运行一些命令,例如 npm install 或 npm run server。
  • 通常,您需要在构建过程中运行 npm install 命令,然后将包含已安装节点模块的构建输出发布到 Azure 应用服务。而且我还看到您已经在构建定义中添加了一个 npm install 步骤。那为什么还需要在服务器上运行呢?
  • 如何运行节点服务器命令?
  • 另外,如果 npm install 将在服务器端,我们不需要将所有文件发送到服务器,它会更快。现在大约是 8 分钟。

标签: node.js azure deployment npm azure-pipelines


【解决方案1】:

您可以使用 PowerShell tasknpm task 来执行 npm 命令。

需要注意的一点:您还需要将带有身份验证令牌的.npmrc 上传到 Azure。

【讨论】:

  • 什么是 .npmrc ?
  • 好的。 .npmrc 明白。但是什么是“Azure 的身份验证令牌”以及如何将其添加到 npmrc
  • 当您执行npm install -g vsts-npm-auth 时,它将从提供的.npmrc 文件中读取您配置的包源,并将凭据写入您的用户配置文件.npmrc。并且您需要将带有凭据的.npmrc 上传到 Azure,以便您可以有权在 Azure 上执行 npm 命令。有关 .npmrc 和凭据的更多详细信息,您可以参考visualstudio.com/en-us/docs/package/npm/npmrc
【解决方案2】:

没有开箱即用的构建任务来实现您想要的功能。如果您确实想从 Azure 应用服务运行 npm:

手动:您可以转到应用服务的Kudu console 并在那里运行npm 命令:

自动:您需要创建自己的构建任务来通过Kudu Rest API运行npm命令

【讨论】:

  • 虽然有效,但这种方式会扼杀自动化部署的目的......
【解决方案3】:

您可以通过Kudu REST API 运行类似npm install 的命令。

Here's a scripted example written in PowerShell.

Azure App Service Deploy 任务之后添加 PowerShell 脚本任务以调用 npm install(或 Kudu 支持的任何其他命令)。并禁用构建管道中的 npm install 任务。

【讨论】:

    【解决方案4】:

    应用服务利用的 Kudu 部署引擎能够运行自定义部署脚本。您可以将所需的 npm 命令包含在 custom deployment script 中,该命令将作为 Azure 端部署的一部分执行。无需调用 REST API,一切都保留在您的源代码控制系统中。

    【讨论】:

    • 我很高兴有人发布了正确的答案。自定义部署脚本是唯一应该这样做的方法。
    【解决方案5】:

    VSTS 中的Azure 应用服务部署任务现在支持部署后脚本。这是任务版本 3.* 的屏幕截图:

    更多详情请见Task Parameters

    Windows 应用服务用户:注意npm bug,它会阻止运行多个npm 命令(内联或在脚本中)。例如:

    npm install
    npm test
    

    只会运行npm install。有几种解决方法,包括this

    npm install & npm test
    

    【讨论】:

      猜你喜欢
      • 2023-02-15
      • 2020-06-08
      • 2020-11-23
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多