Я работаю с проектом расширения браузера и хочу использовать другой URL-адрес, используемый в background.js
во время разработки и сборки. Я хочу сделать это без необходимости поменять код между разработкой и сборкой. В серверном проекте я бы просто использовал переменные dotenv / environment, но это не доступно для расширений, которые эффективно работают на стороне клиента.
В background.js
У меня есть fetch
, использующий это api_base_url
(мы также разрабатываем API);
...
const api_base_url = 'http://127.0.0.1:8000/v1/'
...
Перед тем как я соберу (web-ext build
), мне нужно вручную это что-то вроде:
...
const api_base_url = 'http://a.domain.com/v1/'
...
В идеале это было бы что-то вроде:
...
const api_base_url = ENV['API_BASE_URL']
...
и я бы имел .env
в локальном dev;
API_BASE_URL='http://127.0.0.1:8000/v1/'
и .env.production
(или .env.build
) из;
API_BASE_URL='http://a.domain.com/v1/'
Это также проблема в manifest.json
, где мне нужно добавить в белый список различные URL-адреса в permissions
, например,
"permissions": [
"storage",
"tabs",
"https://a.domain.com/v1/*",
"http://127.0.0.1:8000/v1/*"
]
Это не параметр времени выполнения для каждого пользователя, поэтому browser.storage
и options.js
не то, что мы ищем.