美文网首页
vue项目上传Github预览

vue项目上传Github预览

作者: 飞天小猪_pig | 来源:发表于2021-08-28 15:41 被阅读0次

    当我们使用了 vue-cli 搭建了自己的项目,最后想上传到Github上进行预览效果,应该怎么操作。

    首先完成Vue项目以后,在上传到github之前,需要修改一些配置才能通过github pages预览项目。

    注意事项:以下配置基于vue-cli2,因为vue-cli3之后,由于好多文件已经内置,因此需要查阅官网和网上资料再进行操作!

    一、修改配置

    1. 解决文件路径问题:

    打开项目根目录config文件夹下的index.js文件,进行如下修改:

    image

    看清楚是 build(上边还有个dev 是开发环境下的配置,不需要改动)下的 assetsPublicPath :将‘/'改为‘./'

    1. 背景图片路径错误:

    在css中写的background-img的路径出错需要找到build文件夹下的utils.js,修改一下位置。打开根目录build文件夹中的utils.js文件,在下图中标出的位置中添加publicPath: '../../',

    image
    1. 项目打包后dist文件夹下的index.html引入文件没有引号,这里的解决方法是:

    打开build文件夹下webpack.prod.conf.js文件,在webpack.prod.conf.js找到new HtmlWebpackPlugin中的minify,把minify中的 removeAttributeQuotes: true改为 removeAttributeQuotes:false

    image

    二、上传项目到Github

    1、进入目录,执行npm run build命令,打包项目

    方法一:如果想管理项目的同时又可以预览,可以将整个项目都上传到github,然后将dist文件夹中的文件上传到仓库分支中,步骤如下:

    1.在github里面新建一个仓库,
    2.将整个项目上传到github,执行以下命令行

    git init
    

    git add -f .   // (上传后发现没有dist,再执行一次这句git add -f dist)  
    

    git commit -m '描述信息'
    

    git pull 
    

    git push
    

    现在还是不能实现项目的线上预览效果,点击项目的 setting 项,然后找到 Github Pages


    image.png

    选择 master branch ,保存,接着你会看到项目在线预览链接,点击链接


    image.png

    此时,你会看到页面一片空白,别急,在地址栏后面添加 dist (因为 index.html 是在 dist目录 下),回车,好了,线上页面效果出来了。

    方法二:采用 github 的 gh-pages 分支制作 GitHub Pages ,只把 dist 添加到 gh-pages 分支,这样就把源代码和页面预览文件分开了

    在项目的 master 分支上,混合了源代码和页面预览文件,能不能把两者分开?而且还有一个问题, index.html 总是在 dist 路径下的,能不能项目名称直接跟 index.html 。这就是第二种方法

    (先把本地的 dist 文件夹删除,再上传到 github ,更新 master 分支)

    git命令行操作:

      git run build      
      git branch gh-pages   //创建gh-pages分支
      git checkout gh-pages  //切换到gh-pages分支
      git add -f dist     //强制把dist文件夹提交到github
      $ git subtree push --prefix dist origin gh-pages  //把dist文件夹单独部署到gh-pages分支
    
    image.png

    这里要选择 gh-pages branch ,再点击连接,如果此时看到空白页面,别急,稍等一会(内容更新需要时间)好了,现在看仓库的 master 分支,不存在 dist 文件夹了,再看线上预览地址,也完美了。

    3、这里解答一下配置修改原因(可看可不看):

    问题1:当我们在命令行执行 npm run build 后,项目的目录下会生成一个 dist 文件夹,它里面又包含一个 static 文件夹和一个 index.html 文件,这是 webpack 最终打包好的文件

    image.png

    我们先尝试在浏览器打开 index.html


    image.png

    页面显示是空白的?打开控制台,发现script 标签的引入路径好像不对,因为 static 文件夹和 index.html 是在同一个目录下的,这里却是从根目录引入 static 下的文件,正确的路径应该是 ./ 开头的相对路径: src=’./static/…’ 或者 src=‘static/…’。其实这跟配置资源的路径有关,打开项目根目录 config 文件夹下的 index.js ,定位到 build 下的 assetsPublicPath: ‘/’修改为assetsPublicPath: ‘./’

    问题2:本地预览问题解决了,接着我们把项目 push 到 github

    dist 文件没有被上传到 github ,怎么回事?找到项目根目录的 .gitignore 文件,这里设置一些文件名,对应的文件将不会被提交到 github 上面,而 dist 被设置在里面,所以就不能上传到 github 上了,我们可以把 dist 从文件里移除。 当然还有另一种办法,就是在操作 git 命令时,把 git add.改为 git add -f dist意思是强制把 dist 文件提交到 github 。

    疑惑,为什么 dist 文件夹要设置不被提交? 试想一下,在真正项目开发中, dist 文件夹中的 static 和 index.html 最终是要被扔到服务器上的,而不是提交到 github 上。

    1、参考的原文地址1
    2、参考的原文地址2

    相关文章

      网友评论

          本文标题:vue项目上传Github预览

          本文链接:https://www.haomeiwen.com/subject/hzmsiltx.html