nginx部署vue前端项目实操(node安装,及安装vue-cli/vue脚手架)

node,npm,cnpm,vue-cli安装,打包等操作
1.安装node,下一步,默认配置,不需要改动什么东西,唯一注意的是安装路径不能有中文名称
2.安装完毕之后,先输入cmd,查看node版本,及npm版本,node安装的时候把npm一起安装了,输入node -v ,npm -v。查看到对应版本号没问题即可

3.由于npm镜像是国外的,下载东西较慢,所以我们需要国内淘宝镜像cnpm 来替换npm,这是国内镜像,安装打包较快npm install -g cnpm --registry=https://registry.npm.taobao.org 后面的网站地址就是淘宝镜像
4.安装完node,npm及cnpm,并且查看版本无异常,可以安装vue脚手架,命令为:npm install -g @vue/cli,脚手架可以理解为一个工具,帮你构建项目基础模型,可以理解为vs创建webapi项目


5.由于我们已经安装了cnpm,安装了也不可能不用,因为cnpm更快,所以以后涉及npm指令的可以都替换成cnpm,例如:npm install -g @vue/cli替换为cnpm install -g @vue/cli
这一步是安装脚手架,可以理解为安装dotnet sdk
6.

如图所示,出现vue cli版本号,即代表我们的vue脚手架安装成功,接下来,可以构建项目了,通过命令vue create runoob-vue3-app构建我们的第一个vue项目
(注意,为了避免不必要的麻烦,请不要用文件路径中带空格的,和有中文名称的路径)
7.接下来创建一个空文件夹保存我们的项目,选中当前路径,输入cmd,打开当前路径,输入命令vue create vue3-app创建项目(vue-app是项目名称)

8.注意点:打开我们的项目名称的下一级路径,这里放着我们的项目文件,(这里是为了不避免的vscode插件不能用的问题,打开其他路径会造成你插件失效问题)

9.vscode会询问你是否信任当前文件夹,点是,点否的话可能一些指令用不了,如果点是也用不了,建议直接以管理员方式启动vscode,如果这样命令也用不了,那就可以检查一下环境变量了
一般情况下,node下载安装之后会帮你添加环境变量的,
打开当前终端,我们此时需要启动项目,启动项目的命令是vue run serve,启动之前先得生成项目依赖,项目依赖你可以理解为还原nuget包,生成项目依赖的命令是npm install
所以我们先输入npm install ,生成完依赖之后,再启动项目
10.cnpm识别不到命令。你这时候需要搜一下解决方案,这个解决方案我先试一下,行的话,我就链接贴上来
解决方案


生成依赖成功
11.
这里按住ctrl 鼠标点一下就能打开生成的项目界面了,这是启动项目的命令 cnpm run serve
以上就是我们的安装node,及安装脚手架,安装cnpm配置淘宝镜像源,安装vue脚手架,通过vue脚手架生成项目的相关操作
下面我们来学习通过npm命令打包我们的vue项目,打包可以理解为dotnet项目的发布,前端称为打包,


项目文件夹下新生成了一个dist文件夹,这里存放着我们的打包文件,就和dotnet的publish文件一样的作用

nginx如何部署vue项目

1.昨天已经把项目文件打包好了,存在dist文件夹中,我们先来看看文件夹中有哪些内容
2.打开dist文件夹,可以看到有两个文件夹,分别是js及css,还有ico图标及主页面文件index.html,js和css是vue打包之后生成的js与css,就是我们项目中的js和css文件,都存在这里
为了防止项目暴露,vue帮我们做了guid文件名称生成的东西,所以我们根本找不到我们的项目文件,这可以理解吗
3.打开宝塔程序,在外网环境下打开我们的宝塔界面
4.打开宝塔面板的软件商店,已安装程序,打开nginx的设置
5.nginx的配置详解

点击查看代码
worker_processes auto;
worker_rlimit_nofile 51200;
events
{
	worker_connections 51200;
	multi_accept on;
}
http {
		include       mime.types;
		#include luawaf.conf;
		include proxy.conf;
        default_type  application/octet-stream;

        server_names_hash_bucket_size 512;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 60;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;
		fastcgi_intercept_errors on;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        limit_conn_zone $binary_remote_addr zone=perip:10m;
		limit_conn_zone $server_name zone=perserver:10m;

        server_tokens off;
        access_log off;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
		location /nginx_status {  
        	allow 127.0.0.1;
            deny all;
            stub_status on;  
            access_log  off;  
        }  
    }
    # server{} 包含在http{}内部,    
    # 每一个server{}都是一个虚拟主机(站点) 
    # 意思是每一个server都会监听服务器上的一个端口号,
    # 可以开设你想要部署的服务,如vue,node,python项目等

    # #是nginx中的注释,同linux一样
    server {
    # listen代表你所监听的端口号,
    # 服务器中的端口号通过安全组开启
    #(每一个云服务器,其实也是一台虚拟机,
    # 安全组是架设在你虚拟机的防火墙外面做的一层保护措施,
    # 配置安全组规则时,它会自动为你打开你的端口,
    # 学过docker这里就好理解了,就是做了一层映射,比如,你的宿主机的端口是8080,安全组开启的端口也是8080,做了一次转换 )
    
    # 这里理解不了没关系,这里骚哥会讲的,我个人是这么理解的
    # 虚拟机中的端口号需通过指令开启,并且得关闭防火墙,你的windows系统中 才能访问你当前的虚拟机的端口中的项目
    # linux与windows指令略有不同,
    # 不同的linux系统中的指令也略有差别
    listen       5100;

    # server_name 这里指的是你服务器的ip地址,
    # 本地部署的时候,可以写为localhost,或者127.0.0.1,当然服务器也可以写localhost
    # 它会帮你匹配你当前的内外网ip地址,这个我自己试过,没问题,
    # _代表本机地址,和localhost一个意思
    # vscode的;显示的有问题,分号是必须写的,就和dotnet里的分号代表的意思一样,都是结束的意思
    server_name  _;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;
    # location块指定/与来自请求的url相比较的前缀“”,对于匹配请求,url将被添加到根指令中指定的路径,
    # 即为了 ‘C:\Users\Administrator\Desktop\dist’在本地系统上形成请求文件的路径,如果有几个匹配的location块,
    # (其中linux与windows的root根文件路径书写不一致,linux按照平时的写法一般是:\Users\Administrator\Desktop\dist
    # windows的是 ‘\Users\Administrator\Desktop\dist’)
    # nginx会选择最长前缀的块,说明块越长,越先开始匹配
    # location上面的块提供了最短的前缀,长度为1,所以只有当所有其他location块未提供匹配时,才会使用此块
    location / {
        # root 代表根文件夹路径 
        # 注意:是根文件夹,就是你打包好的项目的文件夹的下一层,放着你打包好的文件夹,及主页面的文件还有logo文件的位置
        root   'C:\Users\Administrator\Desktop\dist';
        # index 代表你主页面的文件名称及文件的后缀 注意要带分号
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    # 重定向错误页面用的,
    # 这里定义错误代码 500这些代表错误码
    # 以及定向为那个页面(这里的/代表到对应的nginx文件夹下的html文件夹下的文件 )
    # C:/BtSoft/nginx/html/50x.html
    # 就是报这些错误码的时候会给用户返回 ‘C:/BtSoft/nginx/html/50x.html’ 页面
    error_page   500 502 503 504  /50x.html;
    # 这个location块明显比上一个location块要长,所以如果报错了,肯定先匹配到当前的页面下,为了节省网络带宽的消耗
    location = /50x.html {
       # root代表根文件,html代表?这里我不是很懂
       root   html;
    }

    
    }
    server {
        listen       5200;
        server_name  _;

        location / {
            root   'C:\Users\Administrator\Desktop\test';
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
    
        location = /50x.html {
        root   html;
        }

    
    }
    include vhost/*.conf; 
    #加载vhost目录下的虚拟主机配置文件
}


经过以上操作,nginx部署vue项目成功,你就可以访问你的url地址访问你前端的项目了

posted @ 2022-04-04 13:30  rookiexwang  阅读(1133)  评论(0编辑  收藏  举报