Неудачное развертывание на Netlify

У меня есть веб-сайт React, развернутый на Netlify, веб-сайт работает, и я внес некоторые изменения в свой файл Github, но эти изменения не отражаются, потому что развертывание продолжает завершаться сбоем, когда оно доходит до стадии сборки.

Я искал возможное решение и изменил настройки развертывания на основе решений, представленных в Интернете для Build command: CI= npm run build, но по-прежнему получаю ту же ошибку.

// error log
8:58:53 PM: Netlify Build                                                 
8:58:53 PM: 
8:58:53 PM: ​
8:58:53 PM: ❯ Version
8:58:53 PM:   @netlify/build 29.54.0
8:58:53 PM: ​
8:58:53 PM: ❯ Flags
8:58:53 PM:   accountId: 60e33a08c5f3c1a88eb16b3b
8:58:53 PM:   baseRelDir: true
8:58:53 PM:   buildId: 66cf8145c77b7d0008018c4c
8:58:53 PM:   deployId: 66cf8145c77b7d0008018c4e
8:58:53 PM: ​
8:58:53 PM: ❯ Current directory
8:58:53 PM:   /opt/build/repo
8:58:53 PM: ​
8:58:53 PM: ❯ Config file
8:58:53 PM:   No config file was defined: using default values.
8:58:53 PM: ​
8:58:53 PM: ❯ Context
8:58:53 PM:   production
8:58:53 PM: ​
8:58:53 PM: Build command from Netlify app                                
8:58:53 PM: 
8:58:53 PM: ​
8:58:53 PM: $ CI= npm run build
8:58:54 PM: > [email protected] build
8:58:54 PM: > react-scripts build
8:58:54 PM: node:internal/modules/cjs/loader:1143
8:58:54 PM:   throw err;
8:58:54 PM:   ^
8:58:54 PM: Error: Cannot find module 'ajv/dist/compile/codegen'
8:58:54 PM: Require stack:
8:58:54 PM: - /opt/build/repo/node_modules/ajv- 
keywords/dist/definitions/typeof.js
8:58:54 PM: - /opt/build/repo/node_modules/ajv- 
keywords/dist/keywords/typeof.js
8:58:54 PM: - /opt/build/repo/node_modules/ajv- 
keywords/dist/keywords/index.js
8:58:54 PM: - /opt/build/repo/node_modules/ajv- 
keywords/dist/index.js
8:58:54 PM: - /opt/build/repo/node_modules/schema- 
utils/dist/validate.js
8:58:54 PM: - /opt/build/repo/node_modules/schema- 
utils/dist/index.js
8:58:54 PM: - /opt/build/repo/node_modules/mini-css-extract- 
plugin/dist/index.js
8:58:54 PM: - /opt/build/repo/node_modules/react- 
scripts/config/webpack.config.js
8:58:54 PM: - /opt/build/repo/node_modules/react- 
scripts/scripts/build.js
8:58:54 PM:     at Module._resolveFilename 
(node:internal/modules/cjs/loader:1140:15)
8:58:54 PM:     at Module._load 
(node:internal/modules/cjs/loader:981:27)
8:58:54 PM:     at Module.require 
(node:internal/modules/cjs/loader:1231:19)
8:58:54 PM:     at require (node:internal/modules/helpers:177:18)
8:58:54 PM:     at Object.<anonymous> 
(/opt/build/repo/node_modules/ajv- 
keywords/dist/definitions/typeof.js:3:19)
8:58:54 PM:     at Module._compile 
(node:internal/modules/cjs/loader:1364:14)
8:58:54 PM:     at Module._extensions..js 
(node:internal/modules/cjs/loader:1422:10)
8:58:54 PM:     at Module.load 
(node:internal/modules/cjs/loader:1203:32)
8:58:54 PM:     at Module._load 
(node:internal/modules/cjs/loader:1019:12)
8:58:54 PM:     at Module.require 
(node:internal/modules/cjs/loader:1231:19) {
8:58:54 PM:   code: 'MODULE_NOT_FOUND',
8:58:54 PM:   requireStack: [
8:58:54 PM:     '/opt/build/repo/node_modules/ajv- 
keywords/dist/definitions/typeof.js',
8:58:54 PM:     '/opt/build/repo/node_modules/ajv- 
keywords/dist/keywords/typeof.js',
8:58:54 PM:     '/opt/build/repo/node_modules/ajv- 
keywords/dist/keywords/index.js',
8:58:54 PM:     '/opt/build/repo/node_modules/ajv- 
keywords/dist/index.js',
8:58:54 PM:     '/opt/build/repo/node_modules/schema- 
utils/dist/validate.js',
8:58:54 PM:     '/opt/build/repo/node_modules/schema- 
utils/dist/index.js',
8:58:54 PM:     '/opt/build/repo/node_modules/mini-css-extract- 
plugin/dist/index.js',
8:58:54 PM:     '/opt/build/repo/node_modules/react- 
scripts/config/webpack.config.js',
8:58:54 PM:     '/opt/build/repo/node_modules/react- 
scripts/scripts/build.js'
8:58:54 PM:   ]
8:58:54 PM: }
8:58:54 PM: Node.js v18.20.4​
8:58:54 PM: "build.command" failed                                        
8:58:54 PM:   Error message
8:58:54 PM:   Command failed with exit code 1: CI= npm run build 
(https://ntl.fyi/exit-code-1)
8:58:54 PM: ​
8:58:54 PM:   Error location
8:58:54 PM:   In Build command from Netlify app:
8:58:54 PM:   CI= npm run build​
8:58:54 PM:   Resolved config
8:58:54 PM:   build:
8:58:54 PM:     command: CI= npm run build
8:58:54 PM:     commandOrigin: ui
8:58:54 PM:     environment:
8:58:54 PM:       - NPM_FLAGS
8:58:54 PM:     publish: /opt/build/repo/build
8:58:54 PM:     publishOrigin: ui
8:58:55 PM: Failed during stage 'building site': Build script 
returned 
non-zero exit code: 2 (https://ntl.fyi/exit-code-2)
8:58:55 PM: Build failed due to a user error: Build script 
returned 
non-zero exit code: 2
8:58:55 PM: Failing build: Failed to build site
8:58:55 PM: Finished processing build request in 45.693s

Желательно включить журналы ошибок или предупреждений, чтобы их можно было просмотреть.

beth 28.08.2024 22:27

Вопросы по развертыванию лучше подходят для обмена стеками DevOps . Но там вы должны предоставить минимально воспроизводимый пример и детали отладки.

jabaa 28.08.2024 22:35

Вы отлаживали Error: Cannot find module 'ajv/dist/compile/codegen'?

jabaa 28.08.2024 22:54

Попробуйте удалить node_module и запустить npm install, если он установит отсутствующий модуль. Кроме того, можете ли вы запустить код локально?

beth 28.08.2024 22:57

Да, @beth, я могу запустить код на своем локальном компьютере, и изменения тоже отражаются локально.

Faithful 28.08.2024 22:59

Если код выполняется локально, возможно, проблема связана с развертыванием. Попробуйте эту строку, измените команду сборки на эту Build command: npm install --force && CI= npm run build

beth 28.08.2024 23:03

Как вы устанавливаете зависимости в CI? Вы устанавливаете с помощью npm ci? Вы устанавливаете зависимости для разработчиков? Я вижу Context production. Это странно. Почему вы строите в производственной среде? Иногда это также означает установку без зависимостей от разработчиков. Вы видите ошибки на этапе установки? Несвязано: не используйте CRA. Он устарел уже два года и содержит проблемы безопасности, которые больше не будут исправлены. Это мертвый проект.

jabaa 28.08.2024 23:05

Да!!!! Это исправило ситуацию. Я занимался этим весь день. Пожалуйста, ответьте на это, чтобы я мог принять его.

Faithful 28.08.2024 23:15

@jabaa, установка не завершена с помощью npm ci, в Netlify есть раздел настроек сборки и развертывания, где вы можете ввести команду, поэтому при нажатии на развертывание эти команды будут выполнены.

beth 28.08.2024 23:25

@beth В журналах вы можете увидеть, что /opt/build/repo/node_modules/ajv- keywords/dist/definitions/typeof.js был установлен. Это означает, что установка была запущена, но не были установлены все необходимые пакеты. Он установил ajv-keywords, но не ajv. npm install --force && CI= npm run build скрывает реальную проблему. Либо устаревший package-lock.json, либо неправильная конфигурация установки, либо что-то еще. Хуже того, это может означать, что node_modules добавлен в репозиторий Git.

jabaa 28.08.2024 23:29
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
5
10
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема связана с отсутствием модуля. Он запускается локально, поскольку модуль установлен, но не установлен в Netlify. Включение «npm install» в сборку команды позволит запустить производственную версию npm install раньше, чем build.

Build command: npm install --force && CI= npm run build

Пожалуйста, исправьте этап установки. Не добавляйте дополнительный этап установки к этапу сборки.

jabaa 28.08.2024 23:20

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