部署

通用指南
如果你用 Vue CLI 处理静态资源并和后端框架一起作为部署的一部分,那么你需要的仅仅是确保 Vue CLI 生成的构建文件在正确的位置,并遵循后端框架的发布方式即可。

如果你独立于后端部署前端应用——也就是说后端暴露一个前端可访问的 API,然后前端实际上是纯静态应用。那么你可以将 dist 目录里构建的内容部署到任何静态文件服务器中,但要确保正确的 publicPath。

#本地预览
dist 目录需要启动一个 HTTP 服务器来访问 (除非你已经将 publicPath 配置为了一个相对的值),所以以 file:// 协议直接打开 dist/index.html 是不会工作的。在本地预览生产环境构建最简单的方式就是使用一个 Node.js 静态文件服务器,例如 serve:

npm install -g serve

-s 参数的意思是将其架设在 Single-Page Application 模式下

这个模式会处理即将提到的路由问题

serve -s dist
#使用 history.pushState 的路由
如果你在 history 模式下使用 Vue Router,是无法搭配简单的静态文件服务器的。例如,如果你使用 Vue Router 为 /todos/42/ 定义了一个路由,开发服务器已经配置了相应的 localhost:3000/todos/42 响应,但是一个为生产环境构建架设的简单的静态服务器会却会返回 404。

为了解决这个问题,你需要配置生产环境服务器,将任何没有匹配到静态文件的请求回退到 index.html。Vue Router 的文档提供了常用服务器配置指引。

#CORS
如果前端静态内容是部署在与后端 API 不同的域名上,你需要适当地配置 CORS。

#PWA
如果你使用了 PWA 插件,那么应用必须架设在 HTTPS 上,这样 Service Worker 才能被正确注册。

#平台指南
#GitHub Pages
#手动推送更新
在 vue.config.js 中设置正确的 publicPath。

如果打算将项目部署到 https://.github.io/ 上, publicPath 将默认被设为 “/”,你可以忽略这个参数。

如果打算将项目部署到 https://.github.io// 上 (即仓库地址为 https://github.com//),可将 publicPath 设为 “//”。举个例子,如果仓库名字为“my-project”,那么 vue.config.js 的内容应如下所示:

module.exports = {
publicPath: process.env.NODE_ENV === ‘production’
? ‘/my-project/’
: ‘/’
}
在项目目录下,创建内容如下的 deploy.sh (可以适当地取消注释) 并运行它以进行部署:

#!/usr/bin/env sh

当发生错误时中止脚本

set -e

构建

npm run build

cd 到构建输出的目录下

cd dist

部署到自定义域域名

echo ‘www.example.com’ > CNAME

git init
git add -A
git commit -m ‘deploy’

部署到 https://.github.io

git push -f git@github.com:/.github.io.git master

部署到 https://.github.io/

git push -f git@github.com:/.git master:gh-pages

cd -
#使用 Travis CI 自动更新
仿照上面在 vue.config.js 中设置正确的 publicPath。

安装 Travis CLI 客户端:gem install travis && travis --login

生成一个拥有“repo”权限的 GitHub 访问令牌。

授予 Travis 访问仓库的权限:travis set GITHUB_TOKEN=xxx (xxx 是第三步中的个人访问令牌)

在项目根目录下创建一个 .travis.yml 文件。

language: node_js
node_js:

  • “node”

cache: npm

script: npm run build

deploy:
provider: pages
skip_cleanup: true
github_token: $GITHUB_TOKEN
local_dir: dist
on:
branch: master
将 .travis.yml 文件推送到仓库来触发第一次构建。

#GitLab Pages
根据 GitLab Pages 文档的描述,所有的配置都在根目录中的.gitlab-ci.yml 文件中。下面的范例是一个很好的入门:

.gitlab-ci.yml 文件应放在你仓库的根目录下

pages: # 必须定义一个名为 pages 的 job
image: node:latest
stage: deploy
script:
- npm ci
- npm run build
- mv public public-vue # GitLab Pages 的钩子设置在 public 文件夹
- mv dist public # 重命名 dist 文件夹 (npm run build 之后的输出位置)
artifacts:
paths:
- public # artifact path 一定要在 /public , 这样 GitLab Pages 才能获取
only:
- master
通常, 你的静态页面将托管在 https://yourUserName.gitlab.io/yourProjectName 上, 所以你可以创建一个 initial vue.config.js 文件去 更新 BASE_URL 要匹配的值 :

// vue.config.js 位于仓库的根目录下
// 确保用 GitLab 项目的名称替换了 YourProjectName

module.exports = {
publicPath: process.env.NODE_ENV === ‘production’
? ‘/yourProjectName/’
: ‘/’
}
请阅读在 GitLab Pages domains 的文档来学习更多关于页面部署 URL 的信息。注意,你也可以使用自定义域名。

在推送到仓库之前提交 .gitlab-ci.yml 和 vue.config.js 文件。GitLab CI 的管道将会被触发: 当成功时候, 到 Settings > Pages 查看关于网站的链接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值