Hej Jakob đź‘‹
Version 16 af Nodejs fungerer åbenbart ikke med nogle af de dependencies som skal downloades 🤷‍♀️. Version 12 virker til gengæld.
Tilføj poison til mix.exs
defp deps do
[
# ...
{:poison, "~> 3.1"}
]
end
Det er en god idé at skrive mix deps.get
i den nærmeste terminal efter du har tilføjet den nye dependency.
Derefter skal du finde filen lib/din_app_web/views/page_view.ex
og tilføje:
defmodule DinAppWeb.PageView do
# ...
def svelte(name, props) do
raw """
<div
class="svelte-component"
data-name=#{name}
data-props=#{json(props)}
>
</div>
"""
end
defp json(props) do
props
|> Poison.encode
|> case do
{:ok, message} ->
message
{:error, reason} ->
IO.inspect(reason)
""
end
end
end
Tilføj/erstat følgende filer i mappen assets/
Derefter skal du tilføje
import sveltegen from "./sveltegen"
til assets/js/app.js
Til sidst skal du bare tilføje mappen svelte: assets/js/svelte
assets/js/svelte/test.svelte
<script lang="ts">
export let count: number
</script>
<p> { count } </p>
<style lang="scss">
# ...
</style>
lib/din_app_web/templates/page/index.html.eex
# ...
<%= svelte("test", %{count: 3}) %>
# ...