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地址訪問你前端的項目了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM