项目部署上线

638 阅读3分钟

1.将代码打包 npm run build

2.安装nodejs与nginx

Nginx是一款轻量级服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

3.项目代码部署-部署就是把你代码放到服务器运行

a. 将打包好的vue代码上传到Nginx默认的站点下,目录地址为/usr/share/nginx/html

b. 启动node服务端为项目提供数据访问服务 上传node服务端的代码到远程服务器,位置可以随意(因为代码是node运行的,不是nginx):并开启node服务

c. 解决nginx下,路由模式history失效的问题

方案1:不使用`history`模式的路由:用hash模式,该模式下地址栏会有`#`

方案2:配置nginx,让nginx支持`history`模式的路由
location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
    # 以下是新增的一行
    try_files $uri $uri/ /index.html;
}

重启之后新的配置将会生效,项目到这里也就可以通过域名或者ip地址进行访问了。

    server {
        listen       8000;
        server_name  localhost;
 
        # 文件路径
        location / {
			try_files $uri $uri/ @router;
            root   D:\study\admin-vue\dist;
            index  index.html index.htm;
        }
		
        # 后端服务器
		location /api {
		   proxy_set_header   Cookie $http_cookie;
		   proxy_pass  http://api_212121;
		   proxy_redirect ~^http://api_212121(.*) http://api_212121$1;
		}
		
        # vue 在history 模式下的配置
		location @router {
           rewrite ^.*$ /index.html last;
        }
		
    }

总体来说就是打包、配置nginx、启动nginx

理解部署:
前端代码的部署:没有服务,依赖后台服务,不需要重启,只要将新代码放对位置就好,所谓的前端部署可以理解放到服务器对应的位置。
后台代码的部署:后台打包后,生成新的压缩包,需要重启服务,后台部署中包含启动服务。
综上:前后端代码部署其实过程不一样。
至于,前端工程上的热更新,不涉及到,因为走的是npm run build,而不是npm run dev,也就没有热更新。
前后端分离工程,前端代码打包后的代码都放到的nginx统一的服务器地址上。
前后端一体工程,前后端分别进行打包,把前端打包后的代码放到后台文件夹的对应位置,并把后台打包的压缩包放到每个工程的服务器上,并启动服务。所以整个过程复杂耗时。

将开发完成的项目打包上线(本地服务器示例)

1.在与该项目同级目录下新建一个该项目的 server 文件夹,在 VS Code 中打开这个空文件夹,使用 “Ctrl + `打开终端输入 npm init -y 将项目自动初始化,然后运行 npm i express -S 为项目安装 express 服务器组件

npm init -y
npm i express -S

2.然后将需上线项目中的 dist 文件整个复制一份到 server 文件夹的根目录中

3.在打包项目即 server 项目的根目录下新建一个 app.js 文件,作为此 server 文件的入口文件。app.js 文件中的代码示例如下:

// 导入 express 模块
const express = require('express')
 
// 创建 express 服务器实例
const app = express()
 
// 托管静态资源
app.use(express.static('./dist'))
 
// 调用 app.listen() 方法,指定端口号并启动服务器
app.listen(80, () => {
    console.log('server running at http://127.0.0.1');
})

4.最后在终端中运行 node .\app.js 命令,运行成功后我们的项目就成功在本地服务器上进行上线了,我们即可通过http://127.0.0.1 访问该项目。