首页 > 解决方案 > 使用补丁包模块部署 Azure 应用服务节点

问题描述

我正在尝试在 Azure 应用服务(通过 BitBucket 的持续集成部署)上的节点应用部署期间运行补丁包。补丁包脚本在本地(在 Mac 上)运行良好,但在 Azure (Windows) 上失败。补丁包模块安装在 node_modules 中,但安装后脚本失败并出现以下错误:

命令:“D:\home\site\deployments\tools\deploy.cmd” 处理 node.js 部署。创建 app_offline.htm KuduSync.NET 从:'D:\home\site\repository' 到:'D:\home\site\wwwroot' 删除 app_offline.htm 在站点根目录下寻找 app.js/server.js。使用启动脚本 app.js 生成 web.config。package.json 文件没有指定 node.js 引擎版本约束。node.js 应用程序将使用默认的 node.js 版本 14.16.0 运行。选定的 npm 版本 6.14.11

my-app@1.0.0 安装后 D:\home\site\wwwroot 补丁包

'patch-package' 不是内部或外部命令、可运行程序或批处理文件。npm 错误!代码 ELIFECYCLE npm 错误!errno 1 npm 错误!rs-email-yelp@1.0.0 安装后:patch-packagenpm 错误!退出状态 1

这是我的(简化的)package.json 文件:

{
  "name": "my-app",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "private": true,
  "dependencies": {
    ...
    "patch-package": "^6.4.4",
    ...
  },
  "scripts": {
    "postinstall": "patch-package"
  }
}

当我尝试npm i在 Kudu 命令行中手动运行时,我得到了同样的错误。

标签: azure-web-app-servicepatch-package

解决方案


万一其他人有这个问题,这就是为我解决的问题:

- 停止 Web 应用程序 - 删除 node_modules 文件夹 - 从 git repo 运行新部署(重新安装所有模块)

一切恢复正常。


推荐阅读