将 vue 项目部署到 surge.sh
Deploying a vue project to surge.sh
我一整天都在尝试将我的 Vue 项目部署到 Surge.sh,该项目使用 webpack-simple
模板。
有趣的是,如果我从我的 CLI 手动部署它,它会工作,但如果我将它推送到 GitHub 并从 Travis CI 部署它,它就不会工作。如果我从 Travis 部署它,它不会包含 dist/
文件夹,因此站点将无法运行。
这是我的 Travis CI 配置:
language: node_js
node_js:
- "node"
- "7"
cache:
directories:
- node_modules/
- dist/
install:
- npm install
after_success:
- surge --project . --domain mydomain.surge.sh
而且我确实添加了两个环境变量,即SURGE_TOKEN
& SURGE_LOGIN
。我真的不知道现在做什么。所以,请帮助。
您的 dist
文件夹在 Travis 构建步骤后丢失的原因是因为在每个步骤后都会清理环境。
为了防止这种情况,您需要在 .travis.yml
中指定一个 deploy:
部分并设置 skip_cleanup: true
设置。
幸运的是,Travis CI supports Surge.sh deployment directly,因此您不需要在 after_success
步骤中直接使用 surge
CLI 工具。看看上面的链接说明,看看你是怎么做的。
更新:
我认为您需要在部署网站之前添加 script:
步骤来构建您的网站。否则我认为 this command 不会被其他任何东西调用。
类似于:
install:
- npm install
script:
- npm run build
deploy:
provider: etc...
我一整天都在尝试将我的 Vue 项目部署到 Surge.sh,该项目使用 webpack-simple
模板。
有趣的是,如果我从我的 CLI 手动部署它,它会工作,但如果我将它推送到 GitHub 并从 Travis CI 部署它,它就不会工作。如果我从 Travis 部署它,它不会包含 dist/
文件夹,因此站点将无法运行。
这是我的 Travis CI 配置:
language: node_js
node_js:
- "node"
- "7"
cache:
directories:
- node_modules/
- dist/
install:
- npm install
after_success:
- surge --project . --domain mydomain.surge.sh
而且我确实添加了两个环境变量,即SURGE_TOKEN
& SURGE_LOGIN
。我真的不知道现在做什么。所以,请帮助。
您的 dist
文件夹在 Travis 构建步骤后丢失的原因是因为在每个步骤后都会清理环境。
为了防止这种情况,您需要在 .travis.yml
中指定一个 deploy:
部分并设置 skip_cleanup: true
设置。
幸运的是,Travis CI supports Surge.sh deployment directly,因此您不需要在 after_success
步骤中直接使用 surge
CLI 工具。看看上面的链接说明,看看你是怎么做的。
更新:
我认为您需要在部署网站之前添加 script:
步骤来构建您的网站。否则我认为 this command 不会被其他任何东西调用。
类似于:
install:
- npm install
script:
- npm run build
deploy:
provider: etc...