新的0.19项目中的elm / html样式属性包的问题

时间:2019-03-16 13:28:12

标签: package elm

我注意到在处理新的Elm 0.19项目中的一些构建错误时,我在运行elm-make时开始看到诸如以下错误。

  

50 | [iframe [src“ https://fakeurl.com”,高度“ 0”,宽度   “ 0”,样式[(“ display”,“ none”),(“ visibility”,“ hidden”)],   沙箱“”]

     

style调用产生:

String -> Attribute msg
     

但是列表中所有先前的元素都是:

Attribute msg
     

提示:列表中的所有内容都必须是相同类型的值。这个   这样您就永远不会遇到意想不到的价值。混合   在单个列表中创建不同类型的对象,请按照以下说明创建“联盟类型”   在:http://guide.elm-lang.org/types/union_types.html

此后的直接错误指出:

  

此参数是类型列表:

List ( String, String )
     

但是style需要第一个参数为:

String

据我所知,elm-make抱怨的那行上使用style属性似乎是最新版本的elm / html 的预期用法。

例如。

style [ ( "display", "none" ), ( "visibility", "hidden" ) ]

看起来更深一点,好像我安装了elm / html 1.0.0软件包,而Elm 0.19的最新版本是2.0.0。更奇怪的是,名为1.0.0的.19的elm / html版本似乎更像是一个名为〜版本5.0.0〜的用于0.18的elm / html软件包的副本,并且它们都具有较新的签名,列出一个清单。查看安装在C:\Users\me\AppData\Roaming\elm\0.19.0\package\elm\html\1.0.0\src\Html下的实际软件包,我确实确实看到签名是style : String -> String -> Attribute msg,据我了解,该签名应该仅适用于Elm 0.18的elm / html软件包1.0.0版本。基于此,我只能得出结论,我的elm / 0.19.0软件包存储库文件夹中有0.18个软件包。

我的逻辑是合理的还是有其他解释?它是怎么得到的,也许我做错了什么?这是其中一种工具的已知问题吗?如何为我的项目解决此问题,以便继续前进?

1 个答案:

答案 0 :(得分:4)

您似乎对将核心软件包转移到Elm 0.19中的elm/名称空间感到困惑。 elm-lang/名称空间中的软件包适用于Elm 0.18。 elm/html的最新版本是1.0.0,而elm-lang/html的最新版本是2.0.0。话虽如此,您拥有elm/html 1.0.0,并且style的正确签名是String -> String -> Attribute msg

release notes for 0.19中提到了此特定更改。遗憾的是,该文档中没有其他更改,因此如果遇到其他麻烦,请在Slack上对人们进行ping操作。