使用Vapor4时无法创建有效的,正在运行的新项目

问题描述 投票:1回答:1

我的上下文:

  • macOS Catalina版本10.15.3
  • Xcode 11.4
  • Swift 5.2
  • Vapor4

我正在使用vapor-beta new myProjectName创建一个新的Vapor项目

它询问我是否要使用我同意(y)的Fluent,并询问我想要哪种数据库(1. postgreSQL / 2. MySql / 3. SQLite)。我选择了选项3;我需要SQLite。

然后,它继续下载模板,并根据我上面选择的选项自定义模板。它停止/冻结在

Generating project files
+ Package.Swift

即使经过10分钟的等待,此行之后也没有任何反应。

[当我查看应用程序文件夹时,有一个隐藏的.vapor-template文件夹,其中似乎包含应用程序的文件夹结构。我不能简单地开始使用它,因为许多文件似乎以某种方式未完成。例如,这是Package.swift的样子:

let package = Package(
    name: "{{name}}",
    platforms: [
       .macOS(.v10_15)
    ],
    dependencies: [
        // 💧 A server-side Swift web framework.
        .package(url: "https://github.com/vapor/vapor.git", from: "4.0.0-rc"){{#fluent}},
        .package(url: "https://github.com/vapor/fluent.git", from: "4.0.0-rc"),
        .package(url: "https://github.com/vapor/fluent-{{fluent.db.url}}-driver.git", from: "{{fluent.db.version}}-rc"){{/fluent}}
    ],
    targets: [
        .target(name: "App", dependencies: [{{#fluent}}
            .product(name: "Fluent", package: "fluent"),
            .product(name: "Fluent{{fluent.db.module}}Driver", package: "fluent-{{fluent.db.url}}-driver"),{{/fluent}}
            .product(name: "Vapor", package: "vapor")
        ]),
        .target(name: "Run", dependencies: ["App"]),
        .testTarget(name: "AppTests", dependencies: [
            .target(name: "App"),
            .product(name: "XCTVapor", package: "vapor"),
        ])
    ]
)

如您所见,未设置项目名称(我指的是name: "{{name}}"),并且有很多对{{#fluent}}"{{fluent.db.version}}-rc")的怪异引用使编译器异常。看起来“ vapor new”命令还有更多的自定义工作要做,只是根本没有机会完成。相同的故事在configure.swift和route.swift中重复。

我确实梳理了所有这些,删除了奇怪的占位符,只是碰到一些configure.swift情况,它抱怨.sqlite无法识别或其他问题。我确实在google / stackoverflow上进行了查询,尝试了一些无效的修复方法...直到退后一步,才意识到地狱...我不应该做所有这些SherlokHolmes-ing ... “蒸气新”命令应该可以正常工作并成功完成...此后,我还有很多工作...这个简单的helloWorld-ish步骤应该可以工作...

[如果有人对成功创建Vapor4项目有什么见识,我将不胜感激...(仅遵循https://docs.vapor.codes/4.0/hello-world/处的步骤不利于正在运行的项目)

swift vapor vapor-fluent
1个回答
0
投票

看来模板系统有些问题。

您可以自己修复Package.swift

let package = Package(
    name: "YourProject",
    platforms: [
       .macOS(.v10_15)
    ],
    dependencies: [
        // 💧 A server-side Swift web framework.
        .package(url: "https://github.com/vapor/vapor.git", from: "4.0.0-rc"),
        .package(url: "https://github.com/vapor/fluent.git", from: "4.0.0-rc"),
        .package(url: "https://github.com/vapor/fluent-postgres-driver.git", from: "2.0.0-rc")
    ],
    targets: [
        .target(name: "App", dependencies: [
            .product(name: "Fluent", package: "fluent"),
            .product(name: "FluentPostgresDriver", package: "fluent-postgres-driver"),
            .product(name: "Vapor", package: "vapor")
        ]),
        .target(name: "Run", dependencies: ["App"]),
        .testTarget(name: "AppTests", dependencies: [
            .target(name: "App"),
            .product(name: "XCTVapor", package: "vapor"),
        ])
    ]
)
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.