安装 Surge
使用 npm 安装 Surge:
npm install -g surge
创建或准备项目
确保你有一个包含静态文件的项目目录,example-project。
使用 Surgefile 或 surge.json 配置
Surge 使用 Surgefile.js 或 surge.json 文件配置服务器设置,以下是一个基本的配置示例:
// example-surgefile.js
module.exports = {
"surge": {
"domain": "yourdomain.com", // 你的域名
"build": "dist/", // 生成文件的目录
"static": "static/", // 静态文件目录
"routes": [
{
"source": "/admin/**",
"target": "http://yourdomain.com/admin"
}
],
"command": "npm run build", // 构建命令
"external": true, // 启用 HTTPS
"port": 300,
"livereload": true
}
}
使用 npm scripts
如果你使用 npm scripts,可以在 package.json 中添加以下脚本:
{
"scripts": {
"surge": "surge --src=example-project --dest=public --build"
}
}
运行 Surge
在项目根目录执行以下命令:
方法 1:使用 npm scripts
npm run surge
方法 2:在命令行直接运行
surge --src=example-project --dest=public --build
配置文件的详细说明
domain:指定 Surge 的域名,你可以使用 Surge 的域名锁定功能,防止他人占用你的域名。build:指定构建后的文件的目录。static:指定静态文件的目录。routes:定义动态路由,支持正则表达式。command:指定构建命令。external:启用 HTTPS。port:指定服务器监听的端口,默认为 300。livereload:启用自动刷新功能。
部署完成后
- 查看服务器状态:
surge --version - 查看访问日志:
tail -f public/surge.log - 浏览器访问:
http://yourdomain.com
配置优化
- 缓存策略:在
Surgefile中添加缓存设置:{ "surge": { "cache": { "maxAge": 60 * 60 * 24 * 7, // 一个星期 "cache-control": "public, max-age: 604800" } } } - 静态资产打包:使用工具如
webpack或rollup将 CSS 和 JavaScript 打包,减少资源请求。 - 目录结构:确保你的静态文件(如图片、字体)放在合适的目录下。
高级功能
- 多域名或子域名:在
Surgefile中添加多个域名或子域名配置。 - 反向代理:使用
nginx插件实现更复杂的反向代理。
常见问题
- 权限问题:确保 Surge 有权限访问你的项目目录。
- 域名错误:检查域名配置是否正确。
- 构建错误:检查构建命令和文件路径是否正确。
通过以上步骤,你可以轻松设置和部署 Surge 服务器,快速上线你的静态项目或动态应用。









