【问题标题】:Azure Web Apps: can't run any npm/yarn script that requires a dependency (commands are not found)Azure Web 应用程序:无法运行任何需要依赖项的 npm/yarn 脚本(找不到命令)
【发布时间】: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


【解决方案1】:

在 package.json 中使用 && 链接 yarn-commands 的情况下,会导致创建 node_modules/mocha/bin/mocha.js 或其他可执行 js 文件时出现问题。

当时,我得到了这种类型的错误 error Command failed with exit code 127 使用 yarn 命令。

要多次摆脱此错误,请尝试以下步骤:

  1. 使用此rm -nf node_modules 从根文件夹中清除节点模块。 在这里您使用的是 git,因此您可以将 /node_modules 添加到 .gitignore 文件中,这样您就不会将库保存到您的存储库中,然后您可以通过运行 npm install 来安装依赖项。
  2. 使用这个SO Thread,尝试了一些命令,例如:
  • yarn cache clean
  • yarn install
  • yarn start
  • npm run buildyarn run build

【讨论】:

  • 是的,我在项目根目录中有一个install:all 脚本,它链接了几个纱线命令。尽管如此,昨天一切又因为一些神秘的未知原因重新开始工作。此外,在我所有的尝试中,我还测试了用 yarn install:server (cd server && yarn install) 之类的单个命令替换该命令。我还尝试用npm 替换yarn。我尝试使用 Oryx 构建随附的服务器包(客户端构建由 GitHub Action 在其中复制)。没有什么能解决问题。昨天发生了一些奇迹_("/)_/.
  • 不过,我正在 GitHub 操作中缓存包。但这并不意味着 node_modules 文件夹被缓存了,对吧?如果这意味着,它可以解释为什么有些尝试没有奏效。但这并不能解释为什么我现在使用 install:all 时它可以工作。
  • 此外,本地一切都按预期工作。
  • 好吧@janluke,yarn 文档没有给出任何提示,当我观察到这种问题时,尝试在 git ignore 文件中添加 node_modules 并按照您的步骤,暂时解决了。
猜你喜欢
  • 1970-01-01
  • 2016-07-06
  • 1970-01-01
  • 2021-12-18
  • 2020-03-03
  • 1970-01-01
  • 2019-06-27
  • 2020-12-05
  • 2020-05-01
相关资源
最近更新 更多