Ошибка Azure Windows WebApp — для запуска во время сборки необходимо установить ESLint: npm install --save-dev eslint

В настоящее время я пытаюсь развернуть веб-приложение Windows в Azure. Я использую Nodejs, и, в частности, это приложение реакции next.js с машинописным текстом. У меня возникают ошибки при развертывании в Azure.

Я использую конвейер действий github для сборки и развертывания приложения, и при его запуске npm install и npm build работают без проблем. Проблема заключается в том, что когда для параметра приложения SCM_DO_BUILD_DURING_DEPLOYMENT установлено значение true, я получаю сообщение об ошибке на этапе развертывания в Azure, поскольку оно перестраивает приложение в веб-приложении. Ошибка:

error - ESLint must be installed in order to run during builds: npm install --save-dev eslint

Я установил SCM_DO_BUILD_DURING_DEPLOYMENT на true, потому что я читал ранее, что узел имеет проблемы с веб-приложениями Azure, связывающими пакеты узла, поэтому вам нужно запустить сборку на сервере.

Проблема в том, что когда я запускаю сборку во время развертывания, я читаю, что запускается команда 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"
  },

Я просто собираюсь неправильно развернуть приложение next.js в веб-приложении Azure? Любое руководство приветствуется. Я потратил несколько дней, пытаясь заставить это работать на этом этапе. Должен ли я создавать собственный сценарий развертывания? Мне не удалось найти документацию для этого с узлом, но я вижу в выводе ошибки, что работает веб-приложение.

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"'. так есть способ изменить это?

попробуйте установить eslint явно в yaml во время развертывания, или вы можете игнорировать eslint в nextjs

MohitGanorkar 14.09.2022 11:27

когда вы прямо говорите в YAML, что вы имеете в виду? Я устанавливаю веб-приложение Windows, поэтому у меня есть собственный скрипт сборки, server.js, web.config и файл package.json.

Jake Boomgaarden 14.09.2022 11:50

попробуйте игнорировать eslint в следующем js, обратитесь к этому nextjs.org/docs/api-reference/next.config.js/ignoring-eslint

MohitGanorkar 15.09.2022 08:56
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
3
92
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  • Эту ошибку можно обойти, и это будет полное игнорирование eslint.

  • Этого можно добиться, настроив next.config.js, добавив опцию ignoreDuringBuilds под тегом eslint. next.config.js должен выглядеть так:

/** @type  {import('next').NextConfig} */
const  nextConfig = {
                        reactStrictMode:  true,
                        swcMinify:  true,
                    
                        eslint:{
                                    ignoreDuringBuilds :  true,
                                },
                    
                    }
module.exports = nextConfig

Здесь я развернул код Nextjs Boilerplate с указанным выше файлом next.config.js.

Другие вопросы по теме