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 提供了强大的功能,适合开发者快速部署和测试。

Surge配置教程

扫码添加小飞机VPN网络工具官方微信

扫码添加小飞机VPN网络工具官方微信

400-638-2751
扫码添加小飞机VPN网络工具官方微信

扫码添加小飞机VPN网络工具官方微信

网站地图