介绍
# netlify
使用 `netlify` CLI 创建项目(“站点”)、关联本地文件夹,并从 GitHub 配置 CI/CD。
## 前置要求
- `netlify --version` - 已登录(`netlify login`)**或者**提供 `--auth $NETLIFY_AUTH_TOKEN`。 - 了解你想要在其下创建站点的 Netlify 团队/账户 标识(可选,但建议)。
有用的检查命令:
```bash netlify status netlify sites:list ```
## Monorepo 模式(推荐)
对于 **包含多个站点的单个仓库**(例如 `sites/seattlecustomboatparts.com`、`sites/floridacustomerboatparts.com`):
- **每个域名创建一个 Netlify 站点**。 - 将站点的 **Base directory**(基础目录)设置为该子文件夹。 - 将 `netlify.toml` 放在 *该子文件夹内*。
这可以保持每个域名的构建配置独立。
### Hugo 子文件夹 `netlify.toml`
创建 `sites/<domain>/netlify.toml`:
```toml [build] command = "hugo --minify" publish = "public"
[build.environment] HUGO_VERSION = "0.155.1" ```
(根据需要调整 HUGO_VERSION。)
## 快速工作流:创建 + 关联 + 初始化 CI/CD
### 1) 创建一个 Netlify 站点(项目)
在你想要部署的站点文件夹(基础目录)中运行:
```bash cd sites/<domain> netlify sites:create --name <netlify-site-name> --account-slug <team> --with-ci ```
注意: - `--with-ci` 启动 CI 挂钩设置。 - 如果你需要手动控制,请添加 `--manual`。
### 2) 将本地文件夹关联到创建的站点
如果尚未关联:
```bash netlify link ```
### 3) 连接到 GitHub 进行持续部署
```bash netlify init ```
这通常是交互式的(选择 Git 远程/仓库 + 构建设置)。为了自动化,我们可以预先创建 `netlify.toml` 并接受默认值。
## 环境变量
设置每个站点的变量:
```bash netlify env:set VAR_NAME value netlify env:list ```
对于 monorepos 很有用: - `CONTACT_EMAIL`(或其他共享配置)
## 部署
手动部署(适合快速预览):
```bash netlify deploy # draft deploy netlify deploy --prod # production deploy ```
## 包含的脚本
- `scripts/hugo_netlify_toml.sh`:在 Hugo 子文件夹中创建 `netlify.toml` - `scripts/netlify_monorepo_site.sh`:帮助为子文件夹创建/关联/初始化站点
使用脚本时,对于非交互式运行,建议通过环境变量传递 `NETLIFY_AUTH_TOKEN`。