Surge 是一个强大的静态文件推送工具,能够帮助开发者快速部署静态网站或应用程序,以下是配置 Surge 的详细步骤:
安装 Surge
你需要安装 Surge,可以通过以下命令安装:
npm install -g surge
或者如果你使用 Yarn:
yarn global add surge
安装完成后,Surge 会被添加到你的全局工具列表中。
初始化 Surge 项目
运行以下命令初始化一个新的 Surge 项目:
surge init
这会在当前目录下创建一个 surge.json 文件,填写这个文件的内容:
{
"surge": {
"factory": "your-factory-id",
"domain": "your-domain.com",
"src": "public/",
"镜像": "your-docker-image",
"路径": "/"
}
}
factory:你可以使用任何唯一的字符串作为工厂 ID。domain:你需要注册一个域名,或者使用一个你已经拥有的域名。src:指定你的静态文件所在的目录。镜像:如果你使用 Docker,指定镜像名称。路径:指定应用程序的访问路径。
将 surge.json 加入到你的代码仓库中,GitHub 或 GitLab。
配置项目文件
确保你的项目文件(如 package.json)包含以下内容,以便 Surge 正确构建和推送:
{
"name": "你的项目名称",
"version": "1..",
"private": true,
"scripts": {
"prehus": "your-pre-commands",
"posthus": "your-post-commands",
"build": "your-build-command"
}
}
prehus:在文件推送前执行的命令,例如构建任务。posthus:在文件推送后执行的命令,例如清理构建文件。build:你的构建命令,npm run build。
构建和推送
执行以下命令构建项目并推送到 Surge:
npm run build && surge push
或使用 Yarn:
yarn build && surge push
访问你的应用
推送成功后,你的应用会被发布到你的域名下。https://your-domain.com。
自动化测试
如果你需要进行自动化测试,可以使用工具如 Cypress,配置 package.json 中的 scripts:
{
"scripts": {
"test": "cypress run",
"test:watch": "cypress run --watch"
}
}
在构建阶段,运行:
npm run test
或
yarn test
高级配置(可选)
a. 自定义域名设置
如果你有自己的域名,可以配置 surge.json:
{
"surge": {
"domain": "your-domain.com",
"subdomain": "your-subdomain",
"scheme": "https"
}
}
b. SSL 配置
如果需要 SSL 证书,可以通过 Let's Encrypt 获取,配置 surge.json:
{
"surge": {
"certificate": "path/to/your-certificate.pem",
"private_key": "path/to/your-private-key.pem"
}
}
c. 自动化部署
可以使用 GitHub Actions 来自动化推送,创建一个 surge.yml 文件,配置推送流程。
d. 多环境支持
在 surge.json 中添加环境变量:
{
"surge": {
"env": {
"NODE_ENV": "production",
"PORT": "300"
}
}
}
团队协作
确保团队成员能够正确配置 Surge,使用 .surgeignore 文件忽略敏感文件,并设置适当的权限。
常见问题
- 域名解析问题:检查域名解析是否正确,确保 DNS 记录指向 Surge 的服务器 IP。
- 构建错误:仔细检查构建日志,找出错误并修复。
- 多人使用:确保所有开发者都正确设置了 Surge,并共享了相同的工厂 ID。
使用插件
Surge 提供了许多插件,如 surge-watch 来实时更新内容,或者 surge-fetch 来提取静态文件。
通过以上步骤,你可以轻松配置并部署静态应用,Surge 提供了强大的功能,适合开发者快速部署和测试。









