我正在处理一个浏览器扩展项目,并希望在其中使用不同的 URLbackground.js
在开发时间和构建时间。我想做到这一点,而不必记住在开发和构建之间更改代码。对于服务器项目,我只需使用 dotenv/环境变量,但这不适用于有效运行客户端的扩展。
In 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
在本地开发中;
API_BASE_URL='http://127.0.0.1:8000/v1/'
and .env.production
(or .env.build
) of;
API_BASE_URL='http://a.domain.com/v1/'
这也是一个问题manifest.json
我需要将不同的 URL 列入白名单permissions
e.g.
"permissions": [
"storage",
"tabs",
"https://a.domain.com/v1/*",
"http://127.0.0.1:8000/v1/*"
]
这不是每个用户的运行时选项,因此browser.storage
and options.js
不是我们要找的。