Package.json сложный стартовый скрипт с "sh -ac" и файлом .env для Firebase

В Пример проекта Firefly в package.json есть

"start": "sh -ac '. ./.env.dev; firebase use dev &&  react-scripts start'",

В моей Windows 10 он не работает с &&:

Now using alias dev (firefly-boilerplate) Unknown script "start'". react-scripts start'

Этот скрипт работает с ; вместо &&, приложение запускается, но не подключается к базе данных:

@firebase/firestore: Firestore (5.0.4): Could not reach Cloud Firestore backend. Connection failed 2 times. Most recent error: FirebaseError: [code=not-found]: The project firefly-boilerplate
 does not exist or it does not contain an active Cloud Datastore database.

Поэтому я должен поместить ключ Api, домен и имя проекта из .env.dev в index.js, чтобы работать. Почему этот скрипт не работает с &&?

Что именно делает команда sh -ac?

Поведение ключевого слова "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
0
1 041
1

Ответы 1

sh - это команда POSIX для запуска оболочки (оболочка - это программа, которая запускает терминал командной строки). Запуск sh -ac означает «эффективно запустить команду оболочки и автоматически экспортировать все переменные, назначенные во время ее выполнения».

Файл .env часто используется для описания локальных переменных среды, необходимых для запуска скриптов, поэтому sh -ac ./.env.dev в основном говорит загрузить все переменные среды из .env.dev.

Затем эти переменные среды становятся доступными в последующих командах через &&, который выполняет несколько команд в одном контексте.

Этот сценарий, попросту говоря, не очень дружелюбен к Windows. Что вам нужно сделать, так это заглянуть внутрь .env.dev на переменные среды, которые он устанавливает, а затем установить их в своем локальном терминале перед запуском команд firebase и react-scripts.

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