Использование портов с приложением elm
Я пытаюсь использовать порты с elm-app. Ранее я использовал elm-live
и установка ванили, и был в состоянии вставить порты, как это:
index.html
<body>
<noscript>
You need to enable JavaScript to run this app.
</noscript>
<div id="root"></div>
<script>
window.addEventListener("load", function(event) {
var app = Elm.Main.fullscreen(localStorage.session || null);
app.ports.storeSession.subscribe(function(session) {
localStorage.session = session;
});
...
Это сработало, и вязов-живое, казалось, встраивать elm.js
в <head>
index.html.
Когда я пытаюсь использовать эту настройку для портов с create-elm-app
однако скомпилированный javascript встроен внизу <body>
так что добавление <script>
как я сделал результаты в этом:
(index):68 Uncaught ReferenceError: Elm is not defined
at (index):68
Каков наилучший способ встраивания портов JS?
1 ответ
Решение
halfzebra/create-elm-app
Проект настраивает вещи немного по-другому. Вам придется изменить src/index.js
файл, как показано в примере в документации по Javascript Interop
import './main.css';
import { Main } from './Main.elm';
import registerServiceWorker from './registerServiceWorker';
var app = Main.embed(document.getElementById('root'));
registerServiceWorker();
// ports related code
app.ports.windowTitle.subscribe(function(newTitle){
window.document.title = newTitle;
});