【发布时间】:2022-09-26 14:07:20
【问题描述】:
我目前正在尝试在 Azure 中部署一个 Windows Web 应用程序。我正在使用 Nodejs,特别是它是一个带有 typescript 的 next.js react 应用程序。我在部署到天蓝色时遇到错误。
我正在使用 github 操作管道来构建和部署应用程序,当在那里运行时,npm install 和 npm build 可以正常工作。问题是当我将SCM_DO_BUILD_DURING_DEPLOYMENT 应用程序设置设置为true 时,我在部署到 Azure 步骤中收到一个 lint 错误,因为它正在 Web 应用程序上重建应用程序。错误是:
error - ESLint must be installed in order to run during builds: npm install --save-dev eslint
我将SCM_DO_BUILD_DURING_DEPLOYMENT 设置为true,因为我之前读过该节点与Azure webapps 链接节点包存在问题,因此您需要在服务器上运行构建。
问题是,当我在部署期间运行构建时,我读到命令 npm install --production 正在运行。当它运行时,它会正确安装我的包,但是当它执行postinstall 构建步骤时,它会因上述 eslint 错误而失败。
当我将SCM_DO_BUILD_DURING_DEPLOYMENT 设置为false 时,我的管道中的部署成功,但应用程序不起作用。
在 Windows 应用程序中,我看不到错误日志,但以前当我将其部署为 Linux 应用程序时,由于 node_modules 链接问题,它显示缺少包,所以我认为这是同样的问题视窗。 (要查看应用程序日志,我去了Diagnose and Solve Problems -> Application Logs,在 Windows 上我没有得到相同的选项,我单击的所有内容都只显示图表,所以我不确定如何验证它是同一个问题,但它似乎是。
TLDR
如何修复 eslint 错误并成功部署我的 next.js 应用程序?这是我的 package.json:
包.json
\"scripts\": {
\"dev\": \"node server.js\",
\"build\": \"next build\",
\"start\": \"node server.js\",
\"lint\": \"next lint\",
\"postinstall\": \"next build\"
},
我是否只是在 azure web 应用程序上以错误的方式部署 next.js 应用程序?任何指导表示赞赏。我花了几天时间试图让这个工作在这一点上。我应该创建自定义部署脚本吗?我无法找到使用节点执行此操作的文档,但我在 webapp 运行的错误输出中看到
azure site deploymentscript -y --no-dot-deployment -r \"C:\\local\\Temp\\zipdeploy\\extracted\" -o \"C:\\home\\site\\deployments\\tools\" --node --sitePath \"C:\\local\\Temp\\zipdeploy\\extracted\"\'. 那么有没有办法改变它?
-
尝试在部署时在 yaml 中显式安装 eslint,或者您可以忽略 nextjs 中的 eslint
-
当您在 YAML 中明确表示时,您指的是什么?我在 Windows Web 应用程序上安装,所以我有一个自定义构建脚本、server.js、web.config 和 package.json 文件
-
尝试忽略下一个 js 中的 eslint 参考这个nextjs.org/docs/api-reference/next.config.js/ignoring-eslint
标签: azure deployment next.js azure-web-app-service eslint