update cn getting-started translation (#730)

This commit is contained in:
JIN 2022-09-08 09:29:55 +08:00 committed by GitHub
parent bf31073021
commit d8df5f5798
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 37 additions and 39 deletions

View File

@ -1,8 +1,6 @@
# 项目结构
现在,你已经创建并运行了第一个 Vapor 应用程序,让我们稍微花点时间熟悉一下 Vapor 的项目结构。
该结构是在 [SPM](spm.md) 的基础上演化而来;因此,如果你曾经使用过 SPM应该会很熟悉。
现在,你已经创建并运行了第一个 Vapor 应用程序,让我们稍微花点时间熟悉一下 Vapor 的项目结构。该结构是在 [SPM](spm.zh.md) 的基础上演化而来;因此,如果你曾经使用过 SPM应该会很熟悉。
```
@ -27,9 +25,7 @@
## Public
如果你使用了 `FileMiddleware` 中间件,那么此文件夹包含你的应用程序提供的所有公共文件,通常是图片、`.css`样式和浏览器脚本等。
例如,对 `localhost:8080/favicon.ico` 发起的请求将检查是否存在 `Public/favicon.ico` 图片并回应。
如果你使用了 `FileMiddleware` 中间件,那么此文件夹包含你的应用程序提供的所有公共文件,通常是图片、`.css` 样式和浏览器脚本等。 例如,对 `localhost:8080/favicon.ico` 发起的请求将检查是否存在 `Public/favicon.ico` 图片并回应。
在 Vapor 可以提供公共文件之前,你需要在 `configure.swift` 文件中启用`FileMiddleware`,参考如下所示:
@ -43,7 +39,7 @@ app.middleware.use(fileMiddleware)
## Sources
该文件夹包含项目的所有 Swift 代码源文件。文件夹 `App``Run`反应软件包的模块,例如这篇 [SPM](spm.md) 文章中所述。
该文件夹包含项目的所有 Swift 代码源文件。文件夹 `App` `Run` 反应软件包的模块,例如这篇 [SPM](spm.zh.md) 文章中所述。
### App
@ -73,12 +69,13 @@ models 文件夹常用于存放 `Content` 和 Fluent `Model` 的类或结构体
这是主要的可执行目标,只包含启动和运行应用程序所需的代码。
#### main.swift
这个文件创建并运行一个配置好的 `Application` 实例。
## Tests
`Sources` 文件夹中的每个不可运行的模块在 `Tests` 中都可以创建一个对应的文件夹,包含 `XCTest` 模块上构建的用例,用来测试你的代码。
可以在命令行使用 `swift test`或在 Xcode 中按 `⌘+U` 来进行测试。
`Sources` 文件夹中的每个不可运行的模块在 `Tests` 中都可以创建一个对应的文件夹,包含 `XCTest` 模块上构建的用例,用来测试你的代码。可以在命令行使用 `swift test`或在 Xcode 中按 `⌘+U` 来进行测试。
### AppTests
@ -86,5 +83,6 @@ models 文件夹常用于存放 `Content` 和 Fluent `Model` 的类或结构体
## Package.swift
最后,是这个项目运行所依赖的第三方库配置。
最后是 [SPM](spm.zh.md) 文件,是这个项目运行所依赖的第三方库配置。

View File

@ -5,14 +5,12 @@
如果尚未安装 Swift 和 Vapor Toolbox请查看安装部分。
- [安装 → macOS](../install/macos.md)
- [安装 → Linux](../install/linux.md)
- [安装 macOS](../install/macos.md)
- [安装 Linux](../install/linux.md)
## 创建
首先,在电脑上创建 Vapor 项目。
打开终端并使用以下 Toolbox 的命令行,这将会在当前目录创建一个包含 Vapor 项目的文件夹。
首先,在电脑上创建 Vapor 项目。打开终端并使用以下 Toolbox 的命令行,这将会在当前目录创建一个包含 Vapor 项目的文件夹。
```sh
vapor new hello -n
@ -21,6 +19,8 @@ vapor new hello -n
!!! tip "建议"
使用 `-n` 为所有的问题自动选择 no 来为您提供一个基本的模板。
!!! tip "建议"
Vapor 以及自带的模板默认使用 `async`/`await`。如果你的系统不能更新到 macOS 12 或者想继续使用 `EventLoopFuture`。运行命令时可以添加此标志 `--branch macos10-15`
命令完成后,切换到新创建的文件夹
@ -39,11 +39,11 @@ open Package.swift
```
Xcode 将自动开始下载Swift包管理器依赖在第一次打开一个项目时这可能需要一些时间当依赖下载后Xcode将显示可以用的 Scheme。
Xcode 将自动开始下载 Swift 包管理器依赖在第一次打开一个项目时这可能需要一些时间当依赖下载后Xcode 将显示可以用的 Scheme。
在窗口的顶部在Play和Stop按钮的右侧单击项目名称以选择项目的Scheme并选择一个适当的target——大概率是“My Mac”。单击play按钮编译并运行项目。
在窗口的顶部,在 Play Stop 按钮的右侧,单击项目名称以选择项目的 Scheme并选择一个适当的 target ——大概率是 “My Mac”。单击 play 按钮编译并运行项目。
你应该会在Xcode窗口的底部看到控制台弹出
你应该会在 Xcode 窗口的底部看到控制台输出以下信息
```sh
[ INFO ] Server starting on http://127.0.0.1:8080
@ -51,7 +51,7 @@ Xcode 将自动开始下载Swift包管理器依赖在第一次打开一个项
### Linux
在 Linux 和其他操作系统上(甚至在 macOS 上如果你不想使用 Xcode ),你可以在你喜欢的编辑器中编辑项目,比如 Vim 或 VSCode 。关于设置其他ide的最新细节,请参阅 [Swift Server Guides](https://github.com/swift-server/guides/blob/main/docs/setup-and-ide-alternatives.md)。
在 Linux 和其他操作系统上(甚至在 macOS 上如果你不想使用 Xcode你可以在你喜欢的编辑器中编辑项目比如 Vim 或 VSCode 。关于设置其他 IDE 的最新细节,请参阅 [Swift Server Guides](https://github.com/swift-server/guides/blob/main/docs/setup-and-ide-alternatives.md)。
在终端运行以下命令来编译和运行你的项目。
@ -64,7 +64,7 @@ swift run
[ INFO ] Server starting on http://127.0.0.1:8080
```
## Visit Localhost
## 访问 Localhost
打开你的浏览器,然后访问 <a href="http://localhost:8080/hello" target="_blank">localhost:8080/hello</a> 或者 <a href="http://127.0.0.1:8080" target="_blank">http://127.0.0.1:8080</a>

View File

@ -1,8 +1,8 @@
# Swift Package Manager
[Swift Package Manager](https://swift.org/package-manager/)(SPM)用于构建项目的源代码和依赖项。由于 Vapor 严重依赖 SPM因此最好了解其工作原理。
[Swift Package Manager](https://swift.org/package-manager/)(SPM) 用于构建项目的源代码和依赖项。由于 Vapor 严重依赖 SPM因此最好了解其工作原理。
SPM 与 CocoapodsRuby gems 和 NPM 相似。可以在命令行中将 SPM 与 `swift build`、`swift test` 等命令或兼容的 IDE 结合使用。但是与其他软件包管理器不同SPM 软件包没有中央软件包索引。SPM 使用 [Git 标签](https://git-scm.com/book/en/v2/Git-Basics-Tagging) 和 URL 来获取 Git 存储库和依赖版本。
SPM 与 CocoapodsRuby gems 和 NPM 相似。可以在命令行中将 SPM 与 `swift build`、`swift test` 等命令或兼容的 IDE 结合使用。但是与其他软件包管理器不同SPM 软件包没有中央软件包索引。SPM 使用 [Git 标签](https://git-scm.com/book/en/v2/Git-Basics-Tagging) 和 URL 来获取 Git 存储库和依赖版本。
## Package Manifest
@ -39,7 +39,7 @@ let package = Package(
### Tools Version
第一行表示需要使用的 Swift tools 版本号,它指明了 Swift 的最低可用版本。Package 描述 API 可能随着 Swift 版本而改变,所以这一行将让 Swift 确认怎么解析你的配置文件。
第一行表示需要使用的 Swift tools 版本号,它指明了 Swift 的最低可用版本。Package 描述 API 可能随着 Swift 版本而改变,所以这一行将让 Swift 确认怎么解析你的配置文件。
### Package Name
@ -47,15 +47,15 @@ let package = Package(
### Platforms
`platforms` 数组指定此程序包支持的平台和版本。通过指定 `.macOS.v10_14`,说明此软件包需要 macOS Mojave 或更高版本。 Xcode 加载该项目时,它将最低部署版本设置为 10.14,以便可以使用所有可用的 API。
`platforms` 数组指定此程序包支持的平台和版本。通过指定 `.macOS.v10_14`,说明此软件包需要 macOS Mojave 或更高版本。 Xcode 加载该项目时,它将最低部署版本设置为 10.14,以便可以使用所有可用的 API。
### Products
products 字段代表 package 构建的时候要生成的 targets。示例中有两个 target一个是 `library`,另一个是 `executable`
products 字段代表 package 构建的时候要生成的 targets。示例中有两个 target一个是库,另一个是可执行文件
### Dependencies
dependencies 字段代表项目需要依赖的 package。所有 Vapor 应用都依赖 Vapor package ,但是你也可以添加其它想要的 dependency
dependencies 字段代表项目需要依赖的 package。所有 Vapor 应用都依赖 Vapor package ,但是你也可以添加其它想要的依赖库
如上面这个示例,[vapor/vapor](https://github.com/vapor/vapor) 4.0 或以上版本是这个 package 的 dependency。当在 package 中添加了 dependency 后,接下来你必须设置是哪个 targets 依赖了新的可用模块。
@ -64,9 +64,9 @@ dependencies 字段代表项目需要依赖的 package。所有 Vapor 应用都
Targets 是你的 package 里包含 modules、executables 以及 tests 总和。虽然可以添加任意多的 targets 来组织代码,但大部分 Vapor 应用有 3 个 target 就足够了。每个 target 声明了它依赖的 module。为了在代码中可以 import 这些 modules ,你必须在这里添加 module 名字。一个 target 可以依赖于工程中其它的 target 或者任意你添加在 [dependencies](#dependencies) 数组中且暴露出来的 modules。
!!! tip "建议"
可运行 targets (包含 `main.swift` 文件的 target) 不能被其它 modules 导入。这就是为什么 Vapor 会有 `App``Run` 两种 target。任何包含在 App 中的代码都可以在 `AppTests` 中被测试验证。
可运行 targets(包含 `main.swift` 文件的 target不能被其它 modules 导入。这就是为什么 Vapor 会有 `App``Run` 两种 target。任何包含在 App 中的代码都可以在 `AppTests` 中被测试验证。
## Folder Structure
## 目录结构
以下是典型的 SPM package 目录结构。
@ -87,7 +87,7 @@ Targets 是你的 package 里包含 modules、executables 以及 tests 总和。
## Package.resolved
第一次构建成功后SPM 将会自动创建一个 `Package.resolved` 文件。`Package.resolved` 保存了当前项目所有用到的 `dependency` 版本。下一次当你构建你的项目时将会同样的版本,甚至是这些依赖有更新的版本也不会使用更新的版本
第一次构建成功后SPM 将会自动创建一个 `Package.resolved` 文件。`Package.resolved` 保存了当前项目所有用到的依赖库版本。下一次当你构建你的项目时将会同样的版本,甚至是这些依赖有更新的版本也不会使用。
更新依赖, 运行 `swift package update`.
@ -97,4 +97,4 @@ Targets 是你的 package 里包含 modules、executables 以及 tests 总和。
如果要更新到最新的依赖项,请使用 File &rarr; Swift Packages &rarr; 更新到最新的 Swift Package 版本。
您可能还想将 `.swiftpm` 文件添加到您`.gitignore` 文件中Xcode 在此处存储 Xcode 项目配置)。
你可能还想将 `.swiftpm` 文件添加到你`.gitignore` 文件中Xcode 在此处存储 Xcode 项目配置)。

View File

@ -1,18 +1,18 @@
# Xcode
页将显示一下使用Xcode的提示和技巧。如果你使用不同的开发环境你可以跳过此页
篇将介绍一些使用 Xcode 的提示和技巧。如果你使用不同的开发环境,你可以跳过此篇
## 自定义工作目录(Working directory)
Xcode 将默认在 _DerivedData_ 目录运行项目。这与项目的根目录(你的 _Package.swift_ 文件所在的目录)不在同一个目录,这意味着 Vapor 将找不到像 _.env_ 或者 _Public_ 等一些文件和目录。
Xcode 将默认在 _DerivedData_ 目录运行项目。这与项目的根目录(你的 _Package.swift_ 文件所在的目录)不在同一个目录,这意味着 Vapor 将找不到像 _.env_ 或者 _Public_ 等一些文件和目录。
如果在运行应用程序时看到以下警告,就可以知道这正在发生。
如果在运行应用程序时看到以下警告,就可以知道这正在发生。
```fish
[ WARNING ] No custom working directory set for this scheme, using /path/to/DerivedData/project-abcdef/Build/
```
要解决这个问题,你可以在 Xcode schem 中为你的项目设置一个自定义的工作目录。
要解决这个问题,你可以在 Xcode scheme 中为你的项目设置一个自定义的工作目录。
首先,编辑项目的 scheme。
@ -22,16 +22,16 @@ Xcode 将默认在 _DerivedData_ 目录运行项目。这与项目的根目录(
![Xcode Scheme Menu](../images/xcode-scheme-menu.png)
在 scheme 编辑器中,选择 _Run_ action 以及 _Options_ tab页。选中 _Use custom working directory_ 然后输入你项目根目录。
在 scheme 编辑器中,选择 _Run_ action 以及 _Options_ tab 页。选中 _Use custom working directory_ 然后输入你项目根目录。
![Xcode Scheme Options](../images/xcode-scheme-options.png)
你可以在终端中运行 `pwd` 来获取你项目根目录的绝对目录
你可以在终端中运行 `pwd` 来获取你项目根目录的绝对目录
```fish
# 确认我们在 vapor 项目目录
vapor --version
# get path to this folder
# 获取当前目录的路径
pwd
```