【问题标题】:Using Mojolicious commands in system CLI在系统 CLI 中使用 Mojolicious 命令
【发布时间】:2017-03-25 23:42:56
【问题描述】:

我的应用程序Alambic 使用 The Great Mojolicious 框架,并定义了可以执行的命令,例如$ script/alambic alambic init.

现在,当我查看 Joel Berger 的 Galileo 和其他出色的作品时,我发现他们有一个可以在 shell 中直接调用的 system 命令,例如$ galileo init。我查看了 mojolicious 文档,但发现对我的应用程序没有任何帮助。现在我什至不确定是 Mojolicious 还是 Perl CPAN 构建过程使它成为可能。任何提示将不胜感激。

【问题讨论】:

  • 您需要将脚本放置在 PATH 中可以找到的某个位置。通常这是 bin 目录,它将被安装到正确的位置。如果您想发布到 cpan 或构建使用 cpan 安装的发行版(但不上传到 PAUSE),那是可行的方法。查看 App::Cpanminus 或 App:: 命名空间中的其他内容以获取示例。您可以在 metacpan.org 或他们的 github 上浏览他们的代码。如果您发布到 CPAN,请将您的应用也移动到 tie App:: 命名空间中。
  • 谢谢@simbabque 我想我现在明白了。但是你所说的 tie App:: 命名空间是什么意思?在 mojolicious 中,我的命名空间是 Alambic:: 那么在构建时如何使它成为不同的命名空间呢?你有任何指针或资源吗?谢谢!
  • 我没有说领带。一般来说,在 PAUSE 上声明一个顶级命名空间是不受欢迎的,但是看到你的东西非常大并且有一个应该可以的唯一名称。无视这一点。

标签: perl mojolicious


【解决方案1】:

我将在这里提供完整的答案,作为对@simbabque 评论的补充。

因此,对于 Mojolicious 应用程序,必须使其可安装(即 cpan 感知)才能将二进制文件复制到路径中的目录。更具体地说,对于 Alambic,我必须:

  1. 设置InstallablePaths(我决定去Module::Build),见the documentation for the module
  2. 创建Build.PL 文件
  3. 运行Module::Build 序列来构建模块:

perl Build.PL
./构建清单
./构建
./构建测试
./构建安装

在安装步骤中,二进制文件被复制到位于$PATH 中的 Perl 管理的目录中。在这一步之后,alambic 命令可作为我的 shell 中的命令使用。

注意:要想在 CLI 上使用她/他自己的命令,Mojolicious 应用程序当然必须define one or more commands

【讨论】:

    猜你喜欢
    • 2014-02-10
    • 2012-06-03
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 2018-07-08
    相关资源
    最近更新 更多