【nuxt】伺服器部署步驟
一. 安裝nodejs
建立檔案目錄
mkdir -p /usr/local/software
進入檔案目錄
cd /usr/local/software
下載nodeJS
wget https://nodejs.org/dist/v8.9.1/node-v8.9.1-linux-x64.tar.gz
注意:
想要合適的版本node到 https://nodejs.org/dist/ 下自己查詢 到時候複製連結 wget的時候還稱自己的連結即可
解壓NodeJs檔案
tar -zxvf node-v8.9.1-linux-x64.tar.gz -C ../
為nodejs更名
mv /usr/local/node-v8.9.1-linux-x64/ /usr/local/node8.9.1
-
# 軟連結指向到node npm
-
ln -
s /usr/
local/node8.
9.1/bin/node /usr/
local/bin/node
-
ln -
s /usr/
local/node8.
9.1/bin/npm /usr/
local/bin/npm
檢視軟鏈是否成功
ls -al /usr/local/bin
軟連結輸出內容
-
[[email protected] bin]# ls -al /usr/
local/bin
-
total
3428
-
drwxr-xr-x
2 root root
4096 Feb
6
14:
09 .
-
drwxr-xr-x.
32 root root
4096 Feb
6
14:
02 ..
-
lrwxrwxrwx
1 root root
29 Feb
6
14:
09 node -> /usr/
local/node8.
9.1/bin/node
-
lrwxrwxrwx
1 root root
28 Feb
6
14:
09 npm -> /usr/
local/node8.
9.1/bin/npm
一: 安裝vue相相關包
如果vue-cli沒有安裝,請安裝vue-cli
npm install -g vue-cli
到專案目錄下
cd /data/www/project/shop/yf_mall_v1.0.5
安裝淘寶景象, 因為在國內用npm安裝會比較慢, 所有我們使用淘寶映象安裝 也就是cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
建立cnpm軟鏈
ln -s /usr/local/node8.9.1/bin/cnpm /usr/local/bin/cnpm
安裝vue相關元件
cnpm install
檢視是cnpm 是否安裝完成
cnpm -v
輸出內容包括:
node版本
npm版本
cnpm 版本等資訊
-
[[email protected] yf_mall_v1.
0.5]# cnpm -v
-
[email protected]
5.2.
0 (/usr/
local/node8.
9.1/lib/node_modules/cnpm/lib/parse_argv.js)
-
[email protected]
5.6.
0 (/usr/
local/node8.
9.1/lib/node_modules/cnpm/node_modules/npm/lib/npm.js)
-
[email protected]
8.9.
1 (/usr/
local/node8.
9.1/bin/node)
-
[email protected]
3.3.
0 (/usr/
local/node8.
9.1/lib/node_modules/cnpm/node_modules/npminstall/lib/
index.js)
-
prefix=/usr/
local/node8.
9.1
-
linux x64
3.10.
0-
693.5.
2.el7.x86_64
-
registry=https:
//registry.npm.taobao.org
一、安裝npm:
安裝pm2 node程序管理器
進入到yf_mall_v1.0.5目錄下安裝pm2
注(重要): 樓主在其他目錄下安裝全域性pm2 雖能安裝成功 但是執行pm2 list的時間一直失敗 在專案目錄下成功了 所以才到專案目錄下執行安裝pm2命令
cd /data/www/project/shop/yf_mall_v1.0.5
cnpm install -g pm2
安裝資訊如下(最後幾行):
-
All packages installed (
194 packages installed from npm registry,
1 packages installed from remote url, used
3s, speed
2.13MB/s, json
173(
1.43MB), tarball
5.17MB)
-
[[email protected]
10.1] link /usr/local/node8.
9.1/bin/[email protected] ->
/usr/local
/node8.9.1/lib
/node_modules/pm2/bin/pm2
-
[[email protected]
10.1] link /usr/local/node8.
9.1/bin/[email protected] ->
/usr/local
/node8.9.1/lib
/node_modules/pm2/bin/pm2-dev
-
[[email protected]
10.1] link /usr/local/node8.
9.1/bin/[email protected] ->
/usr/local
/node8.9.1/lib
/node_modules/pm2/bin/pm2-docker
-
[[email protected]
10.1] link /usr/local/node8.
9.1/bin/[email protected] ->
/usr/local
/node8.9.1/lib
/node_modules/pm2/bin/pm2-runtime
建立軟連結
ln -s /usr/local/node8.9.1/bin/pm2 /usr/local/bin/pm2
Nuxt官方部署教程如下:https://zh.nuxtjs.org/guide/commands
由於我們的環境是本地開發,部署於Linux伺服器,下面開始 打包操作:
需要先後執行以下命令
nuxt build
但是樓主安裝的時候提示
-
[[email protected] shop]
# nuxt build
-
-bash: nuxt: command
not found
解決方法如下:
把nuxt自帶的nuxt命令放到專案的要目錄下
執行軟鏈(放到根目錄)命令如下:
ln -s /data/www/project/shop/yf_mall_v1.0.5/node_modules/nuxt/bin/nuxt /data/www/project/shop/yf_mall_v1.0.5/nuxt
此時專案目錄為:
-
[[email protected] yf_mall_v1.0.5]# ls -al
-
total 228
-
drwxr-xr-x 12 root root 4096 Feb 6 19:14 .
-
drwxr-xr-x 5 root root 4096 Feb 6 12:02 ..
-
-rw-r--r-- 1 root root 1536 Feb 6 12:03 app.html
-
drwxr-xr-x 4 root root 4096 Feb 6 12:03 assets
-
drwxr-xr-x 6 root root 4096 Feb 6 12:03 components
-
-rw-r--r-- 1 root root 207 Feb 6 12:03 .editorconfig
-
-rw-r--r-- 1 root root 28623 Feb 6 12:03 element-variables.scss
-
-rw-r--r-- 1 root root 11515 Feb 6 12:03 .eslintrc.js
-
-rw-r--r-- 1 root root 92 Feb 6 12:03 .gitignore
-
drwxr-xr-x 2 root root 4096 Feb 6 12:03 layouts
-
drwxr-xr-x 2 root root 4096 Feb 6 12:03 middleware
-
drwxr-xr-x 1106 root root 114688 Feb 6 14:18 node_modules
-
lrwxrwxrwx 1 root root 64 Feb 6 19:14 nuxt -> /data/www/project/shop/yf_mall_v1.0.5/node_modules/nuxt/bin/nuxt #樓主新增: 注意此行
-
-rw-r--r-- 1 root root 2950 Feb 23 14:20 nuxt.config.js
-
-rw-r--r-- 1 root root 1150 Feb 23 14:20 package.json
-
drwxr-xr-x 24 root root 4096 Feb 23 14:20 pages
-
drwxr-xr-x 2 root root 4096 Feb 23 14:20 plugins
-
-rw-r--r-- 1 root root 2843 Feb 23 14:20 README.md
-
drwxr-xr-x 9 root root 4096 Feb 23 14:20 static
-
drwxr-xr-x 2 root root 4096 Feb 23 14:20 store
-
drwxr-xr-x 4 root root 4096 Feb 23 14:20 .svn
注:官方推薦的根目錄package.json配置資訊如下(我自定義埠在8025):
-
{
-
"name":
"hao_de_pc",
-
"version":
"1.0.0",
-
"description":
"hao_de_pc",
-
"author":
"wangpengjie <[email protected]>",
-
"private":
true,
-
"config": {
-
"nuxt": {
-
"host":
"127.0.0.1",
-
"port":
"8205"
-
}
-
},
-
"scripts": {
-
"dev":
"nuxt",
-
"build":
"nuxt build && PORT=8205 npm start",
-
"start":
"nuxt start",
-
"generate":
"nuxt generate",
-
"lint":
"eslint --ext .js,.vue --ignore-path .gitignore .",
-
"precommit":
"npm run lint"
-
},
-
}
OK,將 根目錄的這幾個資料夾都上傳到 伺服器的 nuxt 資料夾(我的話 對應伺服器資料夾為:/data/www/project/shop/yf_mall_v1.0.5):
再安裝下依賴外掛:
-
cd /data/www/project/shop/yf_mall_v1
.0
.5
-
npm install
注: 為方便與pm2守護進行結合, 使用更加方便nuxt.js服務端渲染應用部署這樣就完成了
官方先後執行 npm run build 、npm start 即可完成部署。
而我這邊只要執行 npm run build ,其實我只是把兩個合併成一個,並設定了埠以便區別其他應用,避免端口占用!
簡單說一下nuxt命令(來自官方):
nuxt 啟動一個熱載入的Web伺服器(開發模式,埠預設3000) localhost:3000。
nuxt build 利用webpack編譯應用,壓縮JS和CSS資源(釋出用)。
nuxt start 以生成模式啟動一個Web伺服器 (nuxt build 會先被執行)。
nuxt generate 編譯應用,並依據路由配置生成對應的HTML檔案 (用於靜態站點的部署)。
*1.下面啟動Nuxt專案
npm run start
*2.到專案目錄下用pm2執行啟動Nuxt專案命令
pm2 start npm --name "jsyfShopNuxt" -- run start
- 首先一點,必須先啟動 nuxt專案,再啟動 pm2 專案才可以
再做apache的逆向代理配置,你想代理幹嘛用的。。就不解釋了,有新的小哥哥小姐姐可以去帖子看:https://www.cnblogs.com/Nouno/p/6029950.html
最終你在 v-host 檔案裡寫的配置為:
不加資原始檔夾嗯。。。
-
<VirtualHost *:
80>
-
ServerAdmin
[email protected]qq.com
-
php_admin_value open_basedir /
data/www/test.anendbro.com:/tmp:/
var/tmp:/proc:/
data/www/
default/phpmyadmin
-
ServerName test.anendbro.com
-
ServerAlias test.anendbro.com
-
ErrorLog /
data/wwwlog/test.anendbro.com/error.log
-
CustomLog /
data/wwwlog/test.anendbro.com/access.log combined
-
-
ProxyRequests On
-
-
ProxyPass / http:
//localhost:8205/
-
ProxyPassReverse / http:
//localhost:8205/
-
</VirtualHost>
最後幾點補充:
- 關於pm2常用命令:
-
-
pm2 list
# 檢視當前正在執行的程序
-
pm2 start all
# 啟動所有應用
-
pm2 restart all
# 重啟所有應用
-
pm2 stop all
# 停止所有的應用程式
-
pm2
delete all
# 關閉並刪除所有應用
-
pm2 logs
# 控制檯顯示所有日誌
-
-
pm2 start
0
# 啟動 id為 0的指定應用程式
-
pm2 restart
0
# 重啟 id為 0的指定應用程式
-
pm2 stop
0
# 停止 id為 0的指定應用程式
-
pm2
delete
0
# 刪除 id為 0的指定應用程式
-
-
pm2 logs
0
# 控制檯顯示編號為0的日誌
-
pm2 show
0
# 檢視執行編號為0的程序
-
pm2 monit jsyfShopNuxt
# 監控名稱為jsyfShopNuxt的程序
注:
pm2官網: http://pm2.keymetrics.io/
pm2-github: https://github.com/Unitech/pm2
2. 全部設定完畢,但你的所有檔案都顯示502 錯誤:
你看下你的代理設定是不是設定完全了。。。我當時錯誤是因為
如圖第一個設定錯了丟了 / 這玩意導致全部無法訪問。。。
OK以上設定完畢,如果還有
nuxt問題可以加這個群 大佬解答632394867
vue問題可以加這個群 大佬解答115658205
【以上有一半以上轉載於:https://blog.csdn.net/hanwuqia0370/article/details/79269161 感謝 貼主 的方法】
一. 安裝nodejs
建立檔案目錄