1.安装Surge
使用npm安装Surge工具:
npm install -g surge
创建配置文件
在项目根目录下创建或更新surge.json文件:
{
"project": "my-project",
"source": "dist",
"domains": ["example.com"],
"https": true,
"interval": "1h",
"command": "npm run build"
}
配置项目信息
project:项目名称,用于识别您的项目。source:默认发布目录,通常是构建后的静态文件目录。domains:数组,指定要部署的域名。https:设置为true,生成Let's Encrypt证书,启用HTTPS。interval:自动更新的时间间隔,格式为"Xh"或"Xd"(小时或天)。command:部署前的预执行命令,例如构建命令。
运行Surge命令
- 发布到生产环境:
surge my-project --prod
- 发布到测试环境(临时服务器):
surge my-project --preview
- 同时发布多个域名:
surge my-project --domain example.com --domain another.com
集成到GitHub Actions
在仓库的.github/workflows/下创建新的YAML文件:
name: Deploy to Surge
on:
push:
branches: [ 'main' ]
env:
SURGE_PROJECT: my-project
SURGE_DOMAIN: example.com
SURGE_HTTPS: true
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Surge Deploy
uses: actions/peace/surge-deploy@v2
with:
command: surge
project: ${{ env.SURGE_PROJECT }}
domain: ${{ env.SURGE_DOMAIN }}
https: ${{ env.SURGE_HTTPS }}
使用Docker镜像运行Surge
创建Dockerfile:
FROM node:16 WORKDIR /app COPY package*.json ./ RUN npm install surge COPY . . CMD ["surge", "my-project", "--prod"]
运行Docker镜像:
docker build -t surge-container . docker run -v $(pwd):/app surge-container
自动化部署(可选)
在surge.json中添加interval,如:
"interval": "1d"
测试配置
运行以下命令列出配置信息:
surge my-project --config surge.json
确保所有域名和HTTPS设置正确,发布后访问域名验证。
进阶配置
- 多个项目:在
surge.json中添加projects数组:
"projects": [
{ "name": "project1", "source": "dist1", "domains": ["domain1.com"] },
{ "name": "project2", "source": "dist2", "domains": ["domain2.com"] }
]
- 环境变量:在
surge.json中添加env字段:
"env": {
"API_KEY": "your-api-key"
}
- 额外命令:在
surge.json中添加before和after命令:
"before": "echo 'Building...'", "after": "echo 'Deployed!'"
常见问题
- 证书问题:确保域名解析正确,可能需要等待CNAME记录更新。
- 权限问题:检查文件夹权限,确保Surge有写入权限。
- 多环境配置:可以通过不同的
surge.json文件或命令行参数处理。
通过以上步骤,您可以轻松配置并使用Surge进行静态网站的部署,自动化您的开发流程。

@版权声明
转载原创文章请注明转载自原子VPN|多平台网络连接与线路优化工具,支持节点切换、网络测速及电脑手机端使用,满足不同网络环境下的连接需求,网站地址:https://yuanziapp.com.cn/