vue项目创建和部署使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue项目创建和部署使用相关的知识,希望对你有一定的参考价值。

参考技术A

这周花了两天时间简单研究了下目前非常流行和应用广泛的前端js框架 vue ,作为一个基础的了解。 vue 的作者是国人尤雨溪。官网描述 vue 是一套用于构建用户界面的渐进式框架,可以自底向上逐层应用,它核心只关注视图层,易于上手和便于整合。同时,其可以与现代化的工具链和各种类库结合,用以创建复杂的单页应用。其特点主要有以下几点:

基于 vue 的流行度,日常项目前端有在使用,遂记录这篇文章,主要讲从环境搭建到使用样例。在学习中,体验和完成了一个功能稍微丰富的例子,为简洁起见,本期只展示官方默认例子。鉴于本地也没有nodeJs环境,所以直接从环境搭建开始。

配置淘宝源,注意 -g 是全局安装

完成之后将使用 cnpm 替换 npm ,验证 cnpm :

之后的依赖安装就可以使用 cnpm install <package> 或简写 cnpm i <package> 进行。没有代理的情况下,相比npm国内要快很多,也不容易失败。注意可以使用 -g -D --save 等参数设置安装范围。

安装 vue-cli
vue-cli 是官方提供的项目脚手架(可以看做类似服务端开发的maven用于构建的部分),用来进行项目构建等操作,后面我们会继续介绍。它还提供了一个图形界面,用来执行和进行相关配置,对于新手等只关心结果的人,减少了很多的学习成本。
安装命令

验证安装

之后我们看到一个 hello-world 的文件夹,里边包括默认生成的一些配置和 App.vue , main.js 等程序文件,如下是支持 vue-router 路由 (控制页面切换等操作) 的一个 main.js 具体内容

注意使用路由时,不要忘记在主模板里添加 <router-view></router-view> 标签,表示路由切换的位置,否则路由页面无法正常展示。

先保持默认的demo内容不变,运行如下命令启动一个本地服务来运行

之后会启动对应的服务,通过地址和端口访问,就能看到默认的页面。

既然提到了部署,默认的部署使用 npm/cnpm 进行,如下命令,输出内容在 /dist 目录。

可以使用参数来设置,得到符合不同需要的编译结果。之后即可以将打包的文件部署到服务器上。

这里说下 vue-cli 脚手架所带的图形界面编译打包管理,可使用如下命令开启,然后按照提示,加入需要的项目,可以查看仪表盘展示,进行插件管理,依赖管理,编译配置,以及项目构建的操作,十分方便。

启动 vue-cli 图形界面

然后按照提示访问即可。

以上就是本期的内容,主要是一些初期的准备工作。目前整体了解了vue相关,如渲染,组件化,路由等。总体来说依托 vue 提供的丰富文档和比较好用的工具,以及本身非常高的流行度,在尝试稍微复杂的功能或者遇到问题时,容易找到相关满意的解决方式,总体来说还是比较适合入门的。后续看时间能多熟悉些实际项目,真正用于搭配后端做个可用的项目。

1. Vue.js介绍
2. Vue CLi脚手架

django+vue前后端分离项目部署

参考技术A 后端用的drf,使用的是uwsgi+nginx

进入服务器项目文件目录下,我的django项目放在了“/usr/myProjects/”目录下了。在manage.py同级目录下创建uwsgi.ini文件,配置如下:

测试效果命令:

如果访问:xxx.xxx.xxx.xx:8000 成功, 则uwsgi.ini配置成功

我的nginx.conf所在位置是“/etc/nginx/nginx.conf”
配置文件如下:

1、第一行

主要就是给nginx加权限,vue部署后使用history路由时会去掉地址后面的‘#’号,打包部署后不加权限会有bug。
2、如配置所示,有两个Server,分别部署了前端服务,和后端服务,值得注意的是两个Server用的是同一个服务器,监听的端口不同。
3、vue部署需要注意的是反向代理地址:

以及后面的端口问题

4、后端的Server需要注意location中的uwsgi_pass 后面的端口号要和uwsgi.ini中配的相同,否则监听不到

5、后端跨域问题。如果遇到跨域需要自己网上找配置,我的没遇到,可能是因为我在django的settings中配置了跨域。
6、django-suit后台管理样式崩了,需要改,但是api可以正常访问,这个有空再说
7、我开始后台监听的是8008端口,vue前端监听的是80端口,这样前端显示好看。然而问题出现了,虽然后台api可以正常访问,vue的本地开发环境也能正常运行且文字、图片资源均显示正常,但是前端vue打包线上部署后,文字信息显示正常,图片信息缺失8008端口,导致显示不出来。为图方便我选择了前端监听8008端口,后端监听80,部署后显示正常。原因不太清楚///////有空再说吧。
8、不要问我为啥都前后端分离了还部署到一个服务器上?穷,而且只是测试,没必要
9、此文仅适合入门

关于django后台admin(suit)缺失的修改(参考:django中文网: https://www.django.cn/article/show-4.html )

在环境中进入项目目录,需要收集css样式,在终端输入命令:

接下来你就回发现static文件中包含了css文件,此时再打开网站,样式显示正常

uWSGI 通过 xxx.ini 启动后会在相同目录下生成一个 xxx.pid 的文件,里面只有一行内容是 uWSGI 的主进程的进程号。

关于uwsgi,进入同届目录下

教训

获取不到环境,那就指定环境

另外:记得重启uwsgi,重启Nginx,实在不行就先把监听的端口kill掉再重启
暴力删端口:fuser -k 80/tcp

netstat -aptn命令行,查看所有开启的端口号

netstat -ntlp | grep 80 查看具体的端口是否使用
ps -ef | grep uwsgi 查看是否有uwsgi端口存在

以上是关于vue项目创建和部署使用的主要内容,如果未能解决你的问题,请参考以下文章

前端Vue+后端Django项目创建以及自动部署流程

用vue cli3创建的vue项目部署到nginx之初体验

用vue cli3创建的vue项目部署到nginx之初体验

Vue打包并自动部署到指定服务器

Electron + vue搭建项目

使用脚手架 vue-cli 4.0以上版本创建vue项目