Elm 获取自己的文件名

Elm 获取自己的文件名,elm,Elm,Elm版本:0.19.1 有没有一种方法可以使用项目元数据UTIL或其他工具/解决方案在Elm项目中进行一些元编程?简单的东西,比如获取自己的文件名,获取自己的文件目录,然后在我的elm应用程序中使用 我想要的是这样的: moduleName : String moduleName = MetaData.moduleName 从根本上说,Elm不提供对此类信息的访问,因为没有反射API,因此在Elm中没有一种好方法可以完全做到这一点。您可以尝试使用Ports和JS,但如果您谈论的是Elm源代码

Elm版本:0.19.1

有没有一种方法可以使用项目元数据UTIL或其他工具/解决方案在Elm项目中进行一些元编程?简单的东西,比如获取自己的文件名,获取自己的文件目录,然后在我的elm应用程序中使用

我想要的是这样的:

moduleName : String
moduleName = MetaData.moduleName

从根本上说,Elm不提供对此类信息的访问,因为没有反射API,因此在Elm中没有一种好方法可以完全做到这一点。您可以尝试使用Ports和JS,但如果您谈论的是Elm源代码的文件名,那么编译代码中不可能仍然存在数据

实际上,现在实现这一点的方法可能是在任何构建过程中将其实现为代码生成构建步骤,并生成一些简单的Elm文件,其中只包含所需的常量

例如,我的一个项目使用它来执行此操作,它只执行一个简单的sed命令,将从构建环境设置的环境变量中找到的版本插入到。这显然是非常简单和脆弱的,但如果需要,您可以创建一个更健壮的系统来提供更多元数据


显然,缺点是总是有可能在不更新元数据的情况下运行Elm构建。据我所知,这是无法避免的,因为elm编译器目前没有提供任何挂钩。

从根本上说,elm不提供对此类信息的访问,因为没有反射API,因此在elm中没有一种很好的方法可以完全做到这一点。您可以尝试使用Ports和JS,但如果您谈论的是Elm源代码的文件名,那么编译代码中不可能仍然存在数据

实际上,现在实现这一点的方法可能是在任何构建过程中将其实现为代码生成构建步骤,并生成一些简单的Elm文件,其中只包含所需的常量

例如,我的一个项目使用它来执行此操作,它只执行一个简单的sed命令,将从构建环境设置的环境变量中找到的版本插入到。这显然是非常简单和脆弱的,但如果需要,您可以创建一个更健壮的系统来提供更多元数据

显然,缺点是总是有可能在不更新元数据的情况下运行Elm构建。据我所知,这是无法避免的,因为elm编译器目前没有提供任何挂钩