【发布时间】:2021-12-14 21:56:44
【问题描述】:
我使用 Github Actions 将全栈应用程序部署到 Azure Web 应用程序。整个应用程序由 GitHub Actions 工作流构建,我在 Azure 应用程序设置中设置了SCM_DO_BUILD_DURING_DEPLOYMENT=false(无论如何都应该是默认值),以确保 Oryx 不会重新构建应用程序。
部署我的应用程序时,我发现任何调用作为项目依赖项安装的程序的package.json 脚本都会失败,因为找不到该程序。让我们做一个简单的例子(这只是一个说明性的例子):
"start": "cross-env NODE_ENV=production node src/index.js"
会因错误而失败:
2021-10-29T15:45:34.947882335Z yarn run start
2021-10-29T15:45:36.587782173Z yarn run v1.17.3
2021-10-29T15:45:36.831333844Z $ cross-env NODE_ENV=production node src/index.js
2021-10-29T15:45:36.910516860Z /home/site/wwwroot/node_modules/.bin/cross-env: 1: /home/site/wwwroot/node_modules/.bin/cross-env: ../cross-env/src/bin/cross-env.js: not found
2021-10-29T15:45:36.956014542Z error Command failed with exit code 127.
现在,不要关注跨环境或启动服务器的问题。我已经解决了这个问题*。重点是:为什么会这样?
谢谢。
(*) 我最新的“启动”脚本是使用 pm2 启动服务器。 pm2 安装在 Azure 使用的容器中,因此我可以设置 Azure App“启动命令”来调用它,而不是使用 yarn 脚本。
【问题讨论】:
-
你是否在
package.json中用&&链接了纱线命令?
标签: node.js azure deployment azure-web-app-service