所以我在榆树上写了一些超级简单的应用程序。但他们完全处于榆树状态。我想知道的是,我是否可以在elm中制作模块并在我的javascript项目中使用它们。我经常制作和维护我在客户项目中使用的开源项目。这有助于加快我的工作,并且还向我提供社区关于如何改进这些项目的反馈。这是一个很大的互惠互利。我有一个项目,我相信可以真正受益于使用榆树,但我需要在我的生产项目中使用它作为一个模块,因为我不能简单地将这些应用程序移植到elm,也不能说服我的大多数客户榆树很受欢迎使它成为一个很好的决定用于他们的项目。
所以我真的很想知道elm是否可以用来创建可以在javascript中使用的模块,这与你如何制作可以在你的vanilla JS中使用的打字稿模块的效果大致相同。 / p>
答案 0 :(得分:3)
你的意思是使用Elm从javascript实现的功能吗?
然后,这是我对我的项目所做的。
您可以使用Platform.program
编码您的Elm项目。
main : Program Never Model Msg
main =
Platform.program
{ init = init
, update = update
, subscriptions = subscriptions
}
然后你可以加载编译后的代码并与之交互
从您的javascript项目通过port
编译模块。
// load main Elm script
const app = require('./elm').Main.worker()
app.ports.test.subscribe(.......