nuxt.js 簡(jiǎn)單安裝使用

本篇內(nèi)容是我自己做記錄用的,看官方文檔總是會(huì)覺(jué)得缺點(diǎn)東西,所以自己寫(xiě)篇文章記錄下,基本上就是在官方文檔加上一些自己的理解,如果有不對(duì)的地方歡迎下方評(píng)論留言。

1.安裝nuxt

官方文檔給了兩種安裝方式:
1)腳手架工具 create-nuxt-app

npx create-nuxt-app <項(xiàng)目名>  (npx在NPM版本5.2.0默認(rèn)安裝了)
或
yarn create nuxt-app <項(xiàng)目名>

執(zhí)行命令后會(huì)要求選擇一些配置,對(duì)于新手來(lái)說(shuō)不好去選擇。這個(gè)需要就根據(jù)自己的需求選擇(多百度),我也沒(méi)有使用這一個(gè)方式全裝,就不多做描述了(我執(zhí)行npx create-nuxt-app時(shí)總是很慢,我的npm也很慢,通常用cnpm,所以后來(lái)就沒(méi)選擇這個(gè))
2)從頭開(kāi)始新建項(xiàng)目
這個(gè)官方文檔安裝后只有基礎(chǔ)的node_module、package.json文件和 .nuxt文件夾,后續(xù)部署沒(méi)有描述,我在網(wǎng)上趙找了另一種安裝方法:

 npm install -g vue-cli 
 vue init nuxt-community/starter-template 項(xiàng)目名稱(chēng) 

安裝完成后,運(yùn)行

npm run dev

在瀏覽器中輸入 http://localhost:3000,就可以正常訪問(wèn)了

2.nuxt目錄結(jié)構(gòu)

nuxt目錄

assets:資源目錄 用于組織未編譯的靜態(tài)資源如 LESS、SASS 或 JavaScript。
components :組件目錄 用于組織應(yīng)用的 Vue.js 組件。Nuxt.js 不會(huì)擴(kuò)展增強(qiáng)該目錄下 Vue.js 組件,即這些組件不會(huì)像頁(yè)面組件那樣有 asyncData 方法的特性。(就是在nuxt擴(kuò)展的方法只能在頁(yè)面組件pages 目錄下使用)
layouts: 布局目錄 用于組織應(yīng)用的布局組件。(想要改變基礎(chǔ)布局可以修改這里,也可以另外添加模板,只要在頁(yè)面組件文件中使用layouts屬性繼承就可以)
middleware: 目錄用于存放應(yīng)用的中間件。(目前還沒(méi)用過(guò)中間件)
pages:頁(yè)面目錄 用于組織應(yīng)用的路由及視圖。Nuxt.js 框架讀取該目錄下所有的 .vue 文件并自動(dòng)生成對(duì)應(yīng)的路由配置。(nuxt不需要配置路由,備注:params傳參,需要根據(jù)你所傳的參數(shù)去命名,如/index/:id/:name, 相對(duì)應(yīng)的文件目錄則為index/_id/_name.vue)
plugins:插件目錄 用于組織那些需要在 根vue.js應(yīng)用 實(shí)例化之前需要運(yùn)行的 Javascript 插件。(在nuxt.config.js中module.exports下配置plugins引入插件)
static:靜態(tài)文件目錄 用于存放應(yīng)用的靜態(tài)文件,此類(lèi)文件不會(huì)被 Nuxt.js 調(diào)用 Webpack 進(jìn)行構(gòu)建編譯處理
store:目錄用于組織應(yīng)用的 Vuex 狀態(tài)樹(shù) 文件。
nuxt.config.js:文件用于組織Nuxt.js 應(yīng)用的個(gè)性化配置文件
package.json: 文件用于描述應(yīng)用的依賴關(guān)系和對(duì)外暴露的腳本接口。

3.nuxt服務(wù)器部署

我這里是部署到nginx上,使用的是服務(wù)端部署(靜態(tài)部署也試了一下沒(méi)有仔細(xì)研究,動(dòng)態(tài)路由需要在nuxt.config.jspeizhi )。
1)現(xiàn)在本地打包項(xiàng)目

npm run build

2)把打包后的文件壓縮上傳到服務(wù)器中域名所指向的文件夾,執(zhí)行:

npm i
npm run start

運(yùn)行后應(yīng)該就會(huì)是這樣

3)使用pm2進(jìn)程保證斷開(kāi)連接服務(wù)不會(huì)斷掉

pm2 list  查看pm2進(jìn)程列表
pm2 delete  進(jìn)程名/id  刪除進(jìn)程
pm2 start npm --name "進(jìn)程名" -- run start   啟動(dòng)進(jìn)程

僅僅是這樣還是不能直接加載網(wǎng)頁(yè),nginx還需要配置
4)配置nginx
nuxt運(yùn)行在3000端口,nginx還需要做一些配置,因?yàn)槲业捻?xiàng)目中同一個(gè)域名中下有兩個(gè)項(xiàng)目,靜態(tài)資源需要分開(kāi)加載。

upstream nuxtserver1 {
    server 127.0.0.1:3000;
}

server {
    listen 443 ssl;
    server_name  dk.pxmsw.cn;
    root         /data/web/dksc/wechat/user;
    ssl_certificate   cert/dk.pxmsw.cn/1977719_www.aa.cn.pem;
    ssl_certificate_key  cert/dk.pxmsw.cn/1977719_www.aa.cn.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location ~ /organization-wx/.*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp3|wma|js|css)$ {
        expires      3650d;
        access_log off;
    }
    location ~ /organization-wx/.*\.(eot|otf|ttf|woff|svg)$ {
        add_header Access-Control-Allow-Origin *;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp3|wma|js|css)$ {
        expires      3650d;
        access_log off;

        proxy_pass http://nuxtserver1;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }


    location ~ \.(eot|otf|ttf|woff|svg)$ {
        add_header Access-Control-Allow-Origin *;
        proxy_pass http://nuxtserver1;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location / {
        root         /data/web/dksc/wechat/user/wx-user;
        index  index.html index.htm;
        error_page  404  /index.html;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Nginx-Proxy true;
        proxy_cache_bypass $http_upgrade;
        proxy_pass   http://nuxtserver1;
    }

    location /organization-wx/ {
        root         /data/web/dksc/wechat/user/organization-wx;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html =404;

    }

   error_log  /var/log/nginx/error.log;
   access_log /var/log/nginx/access.log main;
}

仿照上面nginx配置后訪問(wèn)你的域名應(yīng)該就可以正常訪問(wèn)了。

參考鏈接:
https://segmentfault.com/a/1190000012774650
http://www.itdecent.cn/p/840169ba92e6

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容