【发布时间】:2019-10-12 13:28:32
【问题描述】:
我使用命令mojo generate app first-app 生成了一个mojolicious 应用程序。它生成的应用程序结构应该允许在使用morbo ./script/first-app 运行开发服务器时运行示例。
文件结构如下所示: mojo app structure
我在项目目录根目录下运行morbo ./script/first-app时的错误是这个错误:
Can't load application from file "/home/djnorrisdev/Documents/mojo-practice/first-app/script/first-app":
Can't find application class "first-app" in @INC. (
/home/djnorrisdev/Documents/mojo-practice/first-app/lib
/home/djnorrisdev/perl5/perlbrew/perls/perl-5.30.0/lib/site_perl/5.30.0/x86_64-linux
/home/djnorrisdev/perl5/perlbrew/perls/perl-5.30.0/lib/site_perl/5.30.0
/home/djnorrisdev/perl5/perlbrew/perls/perl-5.30.0/lib/5.30.0/x86_64-linux
/home/djnorrisdev/perl5/perlbrew/perls/perl-5.30.0/lib/5.30.0)
Compilation failed in require at (eval 72) line 1
(为便于阅读添加了换行符。缩进的行是前一行的延续。)
我尝试使用 morbo 的完整路径(如 6 年前的 SO 帖子中所述),但这会产生与上述相同的错误。该命令是这样的:/home/djnorrisdev/perl5/perlbrew/pls/perl-5.30.0/bin/morbo ./script/first-app
我猜任何熟悉完整 mojolicious 应用程序的人都会熟悉脚本文件,但这里是 script/first-app 的内容:
#!/usr/bin/env perl
use strict;
use warnings;
use Mojo::File 'curfile';
use lib curfile->dirname->sibling('lib')->to_string;
use Mojolicious::Commands;
# Start command line interface for application
Mojolicious::Commands->start_app('first-app');
考虑到这是一个 mojolicious 生成的应用程序,我认为它不应该出现 @INC 错误,并且可以毫无问题地使用 morbo 运行。有人对此有深入了解吗?
【问题讨论】:
-
我试过这个::
mojo generate app first-app并得到错误Your application name has to be a well formed (CamelCase) Perl module name like "MyApp"。所以我再次尝试使用mojo generate app TestApp并且成功了。然后我做了cd test_app并运行morbo script/test_app并且它有效(我在127.0.0.1:3000 获得了欢迎页面)我使用的是perl5.28.1 版、Ubuntu 19.04、Mojolicious 8.14 版
标签: perl server mojolicious morbo