Где мне установить NODE_OPTIONS при использовании Vite и ReactJS?

Мне нужно увеличить максимальный размер заголовка Http для некоторых вызовов API на моем веб-сайте. Когда я запускаю рассматриваемую функцию, я получаю эту ошибку:

Server responded with status code 431. See https://vitejs.dev/guide/troubleshooting.html#_431-request-header-fields-too-large.

Однако, если я просто уменьшу длину ввода, все будет работать отлично. Это не проблема с файлами cookie, я просто отправляю обратно очень большую строку (например, длинную статью), но когда она достигает определенного размера, пользователь больше не может ее отправить. Поэтому мне нужно использовать опцию, указанную в ссылке, предоставленной терминалом (https://vitejs.dev/guide/troubleshooting.html#_431-request-header-fields-too-large), чтобы увеличить max-http. -размер заголовка. Однако я не знаю, где это сделать.

В package.json есть раздел скриптов, содержащий следующее:

  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0",
    "preview": "vite preview"
  },

Сценарий запуска — «npm run dev». Поэтому я попытался просто изменить сценарий запуска «dev»:

  "scripts": {
    "dev": "vite NODE_OPTIONS=--max_http_header_size=128000",
    "build": "vite build",
    "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0",
    "preview": "vite preview"
  },

Это не работает, и сайт просто не работает вообще. Поэтому я попытался изменить сценарий запуска:

npm run dev

К:

npu NODE_OPTIONS=--max_http_header_size=128000 run dev

Но это тоже не сработало. Мне просто нужно знать, как установить NODE_OPTION для max_http_header_size при использовании vite, поскольку «vite» заменяет «node» в качестве двоичного файла для запуска. Для обычных веб-сайтов React-JS сценарием запуска является «узел», и после него вы можете просто указать NODE_OPTIONS. Но поскольку мы используем Vite, сценарий запуска не является «узлом», и добавление NODE_OPTIONS после «vite» не работает.

Вместо этого используйте команду узла, которая на самом деле означает «vite», что-то вроде node --max_http_header_size=128000 node_modules/vite/bin/vite.js

Estus Flask 16.04.2024 22:54

@Estus Flask Сработало отлично. Теперь я получаю ошибку 414 URI слишком долго вместо 431, но вы ТОЧНО ответили на то, что я искал. Если вы опубликуете это как ответ, я приму это. Спасибо!

NicholaiRen 16.04.2024 22:57
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
2
2
397
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

NODE_OPTIONS — переменная среды, она предназначена для внедрения node опций. Для кроссплатформенного проекта для его установки можно использовать зависимость cross-env:

cross-env NODE_OPTIONS=--max_http_header_size=128000 vite

Альтернативно, вместо этого можно использовать команду, обозначающую vite:

node --max_http_header_size=128000 node_modules/vite/bin/vite.js

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