Hexo 提供快速、简便的部署策略。 您只需一条命令即可将网站部署到服务器上。
$ hexo deploy安装与服务器/存储库提供的部署方法兼容的必要插件。
部署通常通过**_config.yml**进行配置。 有效配置必须有 type 字段。 例如:
deploy:
type: git您可同时使用多个 deployer。 Hexo 会依照顺序执行每个 deployer。
deploy:
- type: git
repo:
- type: heroku
repo:关于更多的部署插件,请参考 插件 列表。
Git
$ npm install hexo-deployer-git --save- 编辑 _config.yml (示例值如下所示):
deploy:
type: git
repo: <repository url> # https://bitbucket.org/JohnSmith/johnsmith.bitbucket.io
branch: [branch]
message: [message]| 选项 | 描述 | 默认 |
|---|---|---|
repo | 目标存储库的 URL | |
branch | 分支名称 | gh-pages (GitHub)coding-pages (Coding.net)master (others) |
message | 自定义提交信息 | Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }} |
token | 可选的令牌值,用于认证 repo。 用 $ 作为前缀从而从环境变量中读取令牌 |
- 此外,如果您的 Github Pages 需要使用 CNAME 文件自定义域名,请将 CNAME 文件置于
source目录下,只有这样hexo deploy才能将 CNAME 文件一并推送至部署分支。
- 除非你使用令牌或 SSH 密钥认证,否则你会被提示提供目标仓库的用户名和密码。
- hexo-deployer-git 并不会存储你的用户名和密码。 请使用 git-credential-cache 来临时存储它们。
- 登入 Github/BitBucket/Gitlab,请在库设置(Repository Settings)中将默认分支设置为
_config.yml配置中的分支名称。 稍等片刻,您的站点就会显示在您的Github Pages中。
Heroku
$ npm install hexo-deployer-heroku --save修改配置。
deploy:
type: heroku
repo: <repository url>
message: [message]| 选项 | 描述 |
|---|---|
repo, repository | Heroku 库(Repository)地址 |
message | 自定提交信息 (默认为 Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }}) |
Netlify
Netlify 提供持续部署(Git 触发构建)、智能全球 CDN、完整 DNS(包括自定义域)、自动 HTTPS、资产加速等功能。 它是一个统一的平台,可自动执行代码,创建高性能、易于维护的网站和网络应用程序。
在 Netlify 上部署站点,有两种不同的方式。 首先,也是最通用的方式,就是使用Netlify提供的网页端用户界面。 前往新建一个网站页面,选择需要关联的 Github/BitBucket/Gitlab 库,然后遵循网站提示。
另一种方式是使用Netlify提供的命令行客户端工具 Node based CLI 管理和部署您的站点。
此外,您还可以在项目的README中增加一个 部署至Netlify按钮,这样其他用户在fork或clone了您的项目之后可以方便快捷地一键部署。
Rsync
$ npm install hexo-deployer-rsync --save修改配置。
deploy:
type: rsync
host: <host>
user: <user>
root: <root>
port: [port]
delete: [true|false]
verbose: [true|false]
ignore_errors: [true|false]| 选项 | 描述 | 默认值 |
|---|---|---|
host | 远程主机的地址 | |
user | 使用者名称 | |
root | 远程主机的根目录 | |
port | 端口 | 22 |
delete | 删除远程主机上的旧文件 | true |
verbose | 显示调试信息 | true |
ignore_errors | 忽略错误 | false |
FTPSync
Install hexo-deployer-ftpsync.
$ npm install hexo-deployer-ftpsync --save修改配置。
deploy:
type: ftpsync
host: <host>
user: <user>
pass: <password>
remote: [remote]
port: [port]
clear: [true|false]
verbose: [true|false]| 选项 | 描述 | 默认值 |
|---|---|---|
host | 远程主机的地址 | |
user | 使用者名称 | |
pass | 密码 | |
remote | 远程主机的根目录 | / |
port | 端口 | 21 |
clear | 在上传前移除远程主机的根目录下所有的文件和目录 | false |
verbose | 显示调试信息 | false |
SFTP
Install hexo-deployer-sftp. 通过 SFTP 部署站点,允许使用 ssh-agent 进行无密码连接。
$ npm install hexo-deployer-sftp --save修改配置。
deploy:
type: sftp
host: <host>
user: <user>
pass: <password>
remotePath: [remote path]
port: [port]
privateKey: [path/to/privateKey]
passphrase: [passphrase]
agent: [path/to/agent/socket]| 选项 | 描述 | 默认值 |
|---|---|---|
host | 远程主机的地址 | |
port | 端口 | 22 |
user | 使用者名称 | |
pass | 密码 | |
privateKey | SSH 私钥的目录地址 | |
passphrase | 私钥的可选密码 | |
agent | ssh套接字的目录地址 | $SSH_AUTH_SOCK |
remotePath | 远程主机的根目录 | / |
forceUpload | 覆盖现有的文件 | false |
concurrency | 同时处理的 SFTP 任务的最大数量 | 100 |
Vercel
Vercel 是一个云平台,使开发人员能够托管 Jamstack 网站和网络服务,这些网站和服务可即时部署,自动扩展,无需监督,零配置。 他们提供全球边缘网络、SSL 加密、资源压缩、缓存失效等服务。
步骤 1: 在你的 package.json 文件中添加一个构建脚本:
{
"scripts": {
"build": "hexo generate"
}
}步骤 2: 将你的 Hexo 网站部署到 Vercel 上
要通过 Git整合Vercel 部署 Hexo 应用程序,请确保它已被推送到 Git 仓库。
使用 导入流 将该项目导入 Vercel。 在导入过程中,你会发现所有相关的选项都是预先配置好的;但是,你可以选择改变其中的任何选项,这些选项的清单可以在 这里 找到。
在你的项目被导入后,所有后续推送到分支的内容都会产生 预览部署 ,而对 生产分支(通常是“主分支”)所做的所有更改都会导致 生产部署。
或者,您可以单击下面的部署按钮创建新项目:
Bip
Bip 是一项商业托管服务,为静态网站提供零停机部署、全球 CDN、SSL、无限带宽等。 计划以以每个域为基础,随用随付的方式提供。
由于 Bip 为 Hexo 提供了开箱即用的支持,因此开始使用是很容易的。 本指南假定你已经有 一个Bip域和已经安装Bip CLI。
1: 初始化你的项目目录
$ bip init按照提示,你会被提问到你想部署到哪个域。 Bip 会检测到你正在使用 Hexo ,并自动设置项目设置,如源文件目录。
2: 部署你的网站
$ hexo generate —deploy && bip deploy几分钟后,你的网站将被部署。
其他方法
Hexo 生成的所有文件都放在 public 文件夹中。 您可以将它们复制到您喜欢的地方。