本地 vue 项目上传至 GitHub

本地 vue 项目上传至 GitHub

前言

最近初步完成了 vue仿某商城购物车 , 上传至 github , 并实现一个简单的预览功能 , 遇到一些问题 , 分享一下解决的过程

打包 Vue 项目

vue 项目完成时 , 执行以下命令

npm run build 

实际上此命令就是执行 build.js 文件 , 将项目打包成静态资源 , 项目根目录下会多出一个 dist 文件夹

本地 vue 项目上传至 GitHub

static 文件下包括项目打包后的 css、js、img、fonts (字体图标)

项目资源无法加载

但打开 dist 下 index.html 文件 , 页面却显示空白 , F12 打开控制台查看

本地 vue 项目上传至 GitHub

发现并没加载任何 css、js 文件 , 解决办法如下:

打开根目录 config 下的 index.js , 找到如下代码:

本地 vue 项目上传至 GitHub

assetsPublicPath: '/' , 改为 assetsPublicPath: './'assetsPublicPath: ''

保存 , 运行 npm run build , 在新生成的 dist 下打开 index.html , 页面结构正常显示 , 但是页面字体图标和 mock 的数据无法正常加载

字体图标无法加载

页面中用 background 加载的图片可以正常显示 , 但是所有的字体图标都不能正常显示 , 解决办法如下:

打开根目录 build 下的 utils.js , 找到如下代码:

本地 vue 项目上传至 GitHub

fallback: 'vue-style-loader' 下添加 publicPath: '../../'

保存 , 运行 npm run build , 在新生成的 dist 下打开 index.html , 页面字体图标正常显示

Mock 数据无法正常加载

项目的绝大部分页面内容是通过在跟目录下创建的 data.json 文件渲染到页面上的 , 是模拟从后端请求数据的 , 开发调试时用 npm run dev 命令 , 会借助node启动一个本地服务器 , 可以正常的渲染出相应的数据。而通过打包后的项目时属于静态资源的 , 点击 index.html , 是无法加载 mock 的数据的 , 浏览器也会报跨域的错误。若想正常的加载 mock 数据 , 最好的方式是讲打包后的资源丢到服务器中 , 或者使用 jsonp 请求线上真实数据,因为它的原理是利用 script 标签来获得数据 , 在github 上是可以预览的

使用 git 命令将项目上传至 github

项目文件夹内打开 Git Bash Here , 输入

git init

把文件添加到版本库中 , 不要忘记后面的小数点"." , 添加文件夹下的所有文件

git add .

把文件提交到仓库 , 引号内为提交说明

git commit " update message"

关联远程库

git remote add origin 仓库地址 (例如:https://github.com/LixingY/smartisanpay.git)

将项目所有 push 文件到仓库中

git push -u origin master

后期执行 git push 即可

github 在线预览

github 预览是需要利用 GitHub Pages , 点击项目仓库 Settings , 找到 GitHub Pages , 切换到 master branch

本地 vue 项目上传至 GitHub

地址生成了 , 如无法预览 , 地址后面加上 /dist 即可

心得

github 作为星球上最流行的开源托管服务的分布式网站 , 作为程序员 , 掌握基本 github 使用方法 , 无论是对于分享、托管自己的项目 , 还是查阅其它优秀的开源项目 , 都是十分有帮助的

Tips: git 常用命令
git init 	配置git
git add .	更新所有文件
git commit	提交文件至仓库
git status	查看状态
git diff	查看改动说明
git remote	查看远端服务器别名 , 加上 -v 显示 url 信息
git remote add server_url local-alias	添加远端服务器
git clone project_url local_alias		拷贝项目到本机中
git push server_url/local-alias			更新远端服务器仓库
git pull server_url/local-alias			更新本地服务器仓库

--------------------------------------------------------------------------------------------- EOF ----------------------------------------------------------------------------------------------------