Разместил это и в репозитории Svelte :
Я только что сделал свое первое приложение Svelte за выходные, и мне очень понравился этот опыт. Одна вещь, которая меня интересует, что я не смог разобраться с приличным количеством исследований, это если / как можно передать среду выполнения env var или похожую на клиентский скрипт, чтобы он был доступен в комплекте / браузер. Вероятно, это не считается «лучшей практикой», поэтому, может быть, я здесь один, но в Pug, например, вы можете сделать что-то вроде следующего (например, из обработчика маршрута Hapi.js):
const context = {
foo: bar,
baz: ''
}
return h.view('index', context)
Эти переменные затем доступны в контексте Pug.
В своем игрушечном приложении я хотел, чтобы во время запуска сервера можно было передать ключ API (либо из .env
, либо из CLI) и вставить его с сервера Express следующим образом:
app.use(express.static(`${__dirname}/public`))
и эта переменная будет доступна в клиентском скрипте. Опять же, вероятно, не рекомендуется вставлять ключи API в скрипты на стороне клиента и выполнять оттуда вызовы, но возможен ли такой тип передачи переменных в Svelte?
Кажется, что это может быть возможно с использованием либо rollup-plugin-inject, либо rollup-plugin-replace, но я не смог понять, как заставить это работать. Это определенно не критика фреймворка, но, возможно, раздел о работе с env vars будет полезным дополнением к документам Svelte. Спасибо!