Как установить переменную окружения в React JS ..?

Я новичок в React JS. Я пытаюсь создать военный файл из приложения React, но застрял где-то внизу. Это дает мне ошибки ниже.

Creating an optimized production build...

Treating warnings as errors because process.env.CI = true.
Most CI servers set it automatically.

Failed to compile.



./src/Home.js
  Line 2:   'AppNavbar' is defined but never used  no-unused-vars
  Line 3:  'Link' is defined but never used       no-unused-vars
  Line 4:  'Button' is defined but never used     no-unused-vars
  Line 4:  'Container' is defined but never used  no-unused-vars

./src/App.js
  Line 5:   'MenuBar' is defined but never used        no-unused-vars
  Line 6:   'PrivilegeList' is defined but never used  no-unused-vars
  Line 8:   'logo' is defined but never used           no-unused-vars


  npm ERR! code ELIFECYCLE
  npm ERR! errno 1
  npm ERR! [email protected] build: `react-scripts build`
  npm ERR! Exit status 1
  npm ERR!
  npm ERR! Failed at the [email protected] build script.
  npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

  npm ERR! A complete log of this run can be found in:
    npm ERR!     D:\ReactJS-workspace\my-app\npm\cache\_logs\2018-10-19T07_44_19_233Z-debug.log
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 01:36 min
    [INFO] Finished at: 2018-10-19T13:14:19+05:30
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.3.2:exec (npm run build (compile)) on project my-app: Command execution failed.: Process exited with an error: 1 (Exit value: 1) -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Ниже представлена ​​моя структура папок.

Как установить переменную окружения в React JS ..?

Я хочу установить process.env.CI = false, как установить переменную среды в React JS?

Что ж, я думаю, для этого вам просто нужно отключить задачу, которая выполняет шаг eslint или jshint.

Ashvin777 19.10.2018 10:09

Какой скрипт выполняет CI? Вы можете поделиться сценарием

Ashvin777 19.10.2018 10:10

Самое простое решение - удалить неиспользуемый импорт.

Code-Apprentice 19.10.2018 10:10

@ Code-Appretice Да, я удалил неиспользуемый импорт, исправлена ​​ошибка, спасибо

Developer Desk 23.10.2018 09:05

Просто CI=false npm run build без изменений.

Plum 29.01.2020 14:24
Поведение ключевого слова "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) для оценки ваших знаний,...
15
5
32 621
11
Перейти к ответу Данный вопрос помечен как решенный

Ответы 11

Создайте файл с именем .eslintrc в корневой папке и добавьте в этот файл следующие правила -

{
    "rules": {
        "no-unused-vars": "off"
    }
}

Это отключит строгую проверку правила eslint no-unused-vars. Вы можете добавить больше правил в этот файл, если хотите их отключить.

Подробнее читайте в руководстве - https://eslint.org/docs/user-guide/configuring.

Привет, Ашивн, он дал мне enoent ENOENT: нет такого файла или каталога, откройте ошибку D: \ ReactJS-workspace \ package.json

Developer Desk 19.10.2018 10:25

Что ты имеешь в виду?

Ashvin777 19.10.2018 10:27

Я поместил .eslintrc в папку D: \ ReactJS-workspace \ my-app, которая является корневой папкой моего приложения, которая дает указанную выше ошибку

Developer Desk 19.10.2018 10:29

Вы получили эту ошибку, как только добавили этот файл, или она возникает при запуске какого-нибудь скрипта, например npm start? Также вы можете проверить пути, оба выглядят по-разному D:\\React-JSWorkspace\my-app 'D:\ReactJS-workspace\package.json

Ashvin777 19.10.2018 10:30

Я добавил файл .eslintrc в корневую папку и запустил "mvn clean install", чтобы создать войну, это дало мне ошибку выше

Developer Desk 19.10.2018 10:35

Я думаю, что что-то не так на вашем пути, можете ли вы убедиться, что файл .eslintrc находится в той же папке, где находится package.json

Ashvin777 19.10.2018 10:37

Позвольте нам продолжить обсуждение в чате.

Ashvin777 19.10.2018 10:39

проверьте этот пакет dotenv,

  1. создайте новый файл .env в вашем рабочем каталоге

  2. установить dotenv с помощью npm install dotenv

  3. добавьте это в свое приложение require('dotenv').config()

  4. в этом файле напишите process.env.CI = false

  5. добавьте .env к вашему .gitignore [при использовании git]

  6. перезапустите ваше приложение.

ИЛИ запустите этот CI=false npm run build

Нужно ли мне добавлять require ('dotenv'). Config () в каждый файл js ..?

Developer Desk 19.10.2018 10:36

Вы хотите сказать, что App.js правильно ...! а также около 5-го пункта в разделе #misc, я должен добавить .env ..?

Developer Desk 19.10.2018 10:41

да, App.js, а пятая точка - если вы используете git, в противном случае игнорируйте его

Atishay Jain 19.10.2018 10:42

Не устраняет эту ошибку, указанную выше, по-прежнему появляется такая же ошибка

Developer Desk 19.10.2018 10:47

запустите этот CI=false npm run build один раз

Atishay Jain 19.10.2018 10:51

будут ли эти переменные env доступны в файле index.html, если они доступны, то как мне получить к ним доступ и выполнить некоторый код в тегах сценария? пожалуйста, ответь мне.

siluveru kiran kumar 05.09.2019 08:16

Похоже, вам нужно, чтобы ваше приложение имело доступ к переменным process.env.

Для этого у вас есть несколько вариантов (один из которых включает использование сторонней библиотеки, указанной выше, что является хорошим вариантом, но выполняет несколько задач).

1) Задайте переменные среды в вашей команде запуска, например: CI=travis npm start. В этом случае у вас будет доступ к process.env.CI в вашем приложении.

2) Установите переменную окружения в вашем, вы знаете, окружении. Если вы используете Mac или Linux, просто добавьте переменную среды, как обычно, если ваша оболочка будет экспортировать. Проверить с echo $VAR

3) Вручную сделайте что-нибудь глупое в своем приложении для записи в глобальные переменные. Наверное, не беспокойтесь.

4) Просто используйте .dotenv. То, что он делает, на самом деле несложно, но он предлагает решение, которое практически необходимо для большинства проектов по нескольким причинам.

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

Чтобы установить его для выполнения текущего процесса, просто отредактируйте файл package.json и измените сценарий "build" следующим образом:

"scripts": {
"start": "react-scripts start",
"build": "set \"CI=false\" && react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject" }

Это установит для переменной среды CI значение «false». Теперь вы можете выполнить команду сборки с установленной переменной CI:

npm run build

У меня не сработало, я использую Travis CI, он показывает мне, Treating warnings as errors because process.env.CI = true. Most CI servers set it automatically.

Ashish Kamble 16.07.2019 11:44

@AshishKamble вы нашли решение?

Teddy Kossoko 28.08.2019 22:43

@TeddyKossoko Не совсем, извините

Ashish Kamble 29.08.2019 07:50

@AshishKamble Попробуйте CI=false npm run build

Plum 29.01.2020 14:25

Заголовок вашего вопроса сильно отличается от того, что происходит в описании.

Чтобы использовать переменные среды в React, они должны иметь префикс REACT_APP_.

Например, приложение React уловит следующее:

REACT_APP_API_URL=/api

В то время как это не будет:

API_URL=/api

Для получения дополнительной информации см. Официальную документацию:

Я пришел к этому вопросу, когда искал интеграцию с Bitbucket Pipelines.

Для всех, кто ищет то же самое, вы можете добавить CI как false в Settings/Repository Variables для своего репо (если вы не хотите, чтобы он был частью вашего кода, контролируемого версиями).

Если вы хотите добавить его для всех ваших репозиториев в битбакете, вы должны добавить его в свои глобальные настройки, но, вероятно, лучше всего добавить его на основе репо за репо.

"scripts": {
    "start": "react-scripts start",
    "build": "CI=false react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"  
  },

Попробуйте это ... Это установит для CI значение false

У меня была аналогичная проблема при работе с React и Azure Static Web App CI / CD и "build": "CI = false response-scripts build", у меня это работает, развертывание завершено :)

EduardoUstarez 06.09.2020 19:55

Вы должны создать файл .env в корневом каталоге и определить переменную в этом файле. Пожалуйста, убедитесь, что каждый варибал начинается с REACT_APP_, как REACT_APP_IS_PROD=1

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

Ссылка

Создайте файл .env или еще .env.dev, .env.qa, .env.stg ... и т. д.

Добавьте в этот файл следующую строку

CI=false

если вы еще не установили env-cmd, сначала установите его и включите в package.json

Затем добавьте следующие строки в «скрипты» package.json.

  "scripts": {
    "start": "env-cmd -f .env.dev react-scripts start",
    "build": "react-scripts build",
    "build:dev": "env-cmd -f .env.dev npm run-script build",
    "build:qa": "env-cmd -f .env.qa npm run-script build",
    "build:stg": "env-cmd -f .env.stg npm run-script build",
    "build:prod": "env-cmd -f .env.prod npm run-script build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },

Затем выполните сборку с помощью "npm run build: dev" или соответствующей команды.

Для Windows

установить REACT_APP_ENV = разработка && запуск сценариев реакции

Для Linux, Ubuntu, macOs

REACT_APP_ENV = запуск сценариев реакции разработки

Вы можете установить переменные среды в файле .env

Вот шаги

  1. создать файл с именем .env в корневой папке проекта

  2. Теперь, когда вы добавляете переменную, вам нужно добавить префикс REACT_APP например: вы хотите добавить переменную API_URL для своего API. Поэтому вам нужно добавить переменную с префиксом RECT_APP, как показано ниже.

    REACT_APP_API_URL

  3. Остановите свой работающий сервер и перезапустите, используя npm start

  4. Чтобы получить доступ к переменной env, вы должны вызвать: process.env.REACT_APP_API_URL

Ну вот. Теперь вы можете получить доступ к переменной env

Примечание:

  1. Убедитесь, что вы добавили префикс (REACT_APP)
  2. Пожалуйста, остановите свой сервер и перезапустите, чтобы он загрузил переменную env, если она добавлена

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