我的上下文:
我正在使用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/处的步骤不利于正在运行的项目)
看来模板系统有些问题。
您可以自己修复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"),
])
]
)