Vue2.0项目部署上线

一、搭建环境

1.在服务器上部署node

操作:

(1) 进入 linux 输入 wget -c https://npm.taobao.org/mirrors/node/v10.13.0/node-v10.13.0-linux-x64.tar.xz 下载node 安装包

(2) ls 查看文件是否下载, 确认下载 使用 tar -xvf node-v10.13.0-linux-x64.tar.xz 解压文件

(3) 文件重命名 mv node-v10.13.0-linux-x64 nodejs

(4) 将 /root/nodejs 文件夹移动到 /usr/sbin 目录下, mv /root/nodejs/ /usr/sbin/

(5) 配置软连接(方便全局使用): ln -s /usr/sbin/nodejs/bin/node /usr/local/bin/ln -s /usr/sbin/nodejs/bin/npm /usr/local/bin/

(6)检查安装结果: node -v npm -version

(7)配置淘宝镜像(不是必要): npm install -g cnpm --registry=https://registry.npm.taobao.org

(8)淘宝镜像配置软连接: ln -s /usr/sbin/nodejs/bin/cnpm /usr/local/bin/

(9)在项目文件夹下新建文件夹 cd demo 文件夹 npm init -y 初始化项目生成 package.json 文件夹

(10) 安装 express npm i express -D

(11)创建web 服务程序文件 app.js

(12)编写web服务程序代码, 并上传到指定文件夹下(看文件app.js)

(13)node app.js 启动服务

(14)安装pm2 托管 Node Web 服务程序 安装 cnpm install pm2 -g 创建软连接 ln -s /usr/local/nodejs/bin/pm2 /usr/local/bin/pm2

(15)pm2 启动服务 pm2 start app.js

2.在 linux 安装 nginx (如需要做代理则需要安装)

操作:

(1)下载"nginx-1.9.9.tar.gz",移动到/usr/local/下 下载地址 https://nginx.org/download/

(2)解压 tar -zxvf nginx-1.9.9.tar.gz

(3)进入 nginx 目录 cd nginx-1.9.9

(4)配置 ./configure --prefix=/usr/local/nginx

(5)执行 make 、 make install 指令

(6)测试是否安装成功: cd到刚才配置的安装目录/usr/loca/nginx/ 执行 ./sbin/nginx -t

正常情况输出: nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

       nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

(7)启动nginx: 进入 cd /usr/local/nginx/sbin 目录 启动nginx: ./nginx

(8)配置 nginx 开机自启动: vim /etc/rc.d/rc.local

二、 本地打包项目

1.将 路由改为 history 模式(去除路径中的#), 设置 base 路径 (看需求是否需要, 建议做修改)

在router => index.js 文件模块中加上 mode: 'history', base: '自定义名字'

2.修改 配置文件 vue.config.js 文件中的build 中的assetsPublicPath , 将 '/' 改为 './' (在Mac 系统下不需做修改, 原因不明)

3.修改 build => utils.js 中的 generateLoaders 中的 options.extract 部分, 增加一行代码 publicPath: '../../' (为了解决background中的图片路径出错问题)

4.将 api => index.js 文件中的地址设置为服务器地址

5.将打包好的文件上传到服务器的指定目录下

三、设置 nginx 代理

1. 配置nginx需要代理的地址

upstream tomcatServer1 {

       server 172.xx.xx.128:8080;

    }
server {

       listen       80;

       server_name  172.xx.xx.128;//配置需要请求转发的地址

 location / {

               # 域名 admin.service.itoken.funtl.com 的请求全部转发到 tomcat_server1 即 tomcat1 服务上

               proxy_pass http://tomcatServer1;//要转发的地址

               # 欢迎页面,按照从左到右的顺序查找页面

               index index.html;

  }

 }

注意:node项目打包后,config目录下的index.js文件的请求地址需要和nginx的地址保持一致

例如:172.xx.xx.128:80访问项目,项目里面所有用 172.xx.xx.128:8080 都必须替换成 172.xx.xx.128:80/**进行访问,

这样可以防止跨域问题

四. 本地调用外部接口调试解决跨域问题

1.vue.config.js 文件添加以下代码

    proxyTable: {

      '/api': {

        target: '',  // 目标接口域名

        changeOrigin: true, //是否跨域

        secure: true, // https

        pathRewrite: {

          '^/api': '' //重写接口

        }

      },

      },

例:

    proxyTable: {

      '/api': {

// 完整接口地址: [https://emily.red:8001/wechat/api](https://emily.red:8001/wechat/api)

        target: 'https://emily.red:8001/wechat/',  // 目标接口域名

        changeOrigin: true, //是否跨域

        secure: true, // https

        pathRewrite: {

          '^/api': '' //重写接口

        }

      },

      },
  接口调用时例:  
   this.$api.post('/api/api/', {}, res => {})

你可能感兴趣的:(Vue2.0项目部署上线)