LinuxサーバーにVueプロジェクトをデプロイする

LinuxサーバーにVueプロジェクトをデプロイする

ケース1

vue-cliはvue3プロジェクトをビルドし、プロジェクトをLinuxサーバーにアップロードし、サーバーにノードをインストールし、vueプロジェクトを開始します。

まず、ローカルにvueプロジェクトがあり、起動後に通常通りアクセスできます。

ローカルパッケージング後、直接アクセスすることもできます

パッケージ化後に index.html ページが空白の場合は、プロジェクトのルート パスに新しい vue.config.js を作成し、再パッケージ化する必要があります。

LinuxサーバーにNode.jsをインストールするには、

# ノードの圧縮パッケージをダウンロードします。コマンドが実行されるパスがダウンロード先のパスになります。wget https://npm.taobao.org/mirrors/node/v12.16.1/node-v12.16.1-linux-x64.tar.gz      
# 圧縮パッケージを /usr/local/bin/ パスに切り取り、解凍します tar -xvf node-v12.16.1-linux-x64.tar.gz       
# フォルダ名をNodeJsに変更します   
  mv node-v12.16.1-linux-x64 NodeJs  
# gccをインストールする        
  yum で gcc をインストールします。gcc-c++            
# /usr/local/bin/NodeJs/bin パスには 3 つのファイルがあります: node npm npx
# これら 3 つのファイルにソフトリンクを設定します。/usr/bin ディレクトリはシステムコマンドの保存に使用されます。このとき、任意のパスで node を実行することは、/usr/local/bin/NodeJs/bin/node パスのファイルを実行することと同じです。node を実行すると、node 環境に入ります。ln -s /usr/local/bin/NodeJs/bin/node /usr/bin/node         
  NodeJs の bin に npm を追加します。          
  ln -s /usr/local/bin/NodeJs/bin/npx /usr/bin/npx         
# ルートディレクトリに入る cd
# ノードを検証する

VueプロジェクトをLinuxサーバーにアップロードし、コンパイルして実行する

# vueプロジェクトのルートディレクトリに入る cd /home/web
# 依存関係をインストールする npm install
# コンパイルしてパッケージ化する npm run build
# プロジェクトを開始する npm run serve 

テスト

エラーの概要

Linux サーバー上でプロジェクトをコンパイルすると、ノード バージョンが低すぎることを示す次のエラーが報告されます。

Linuxサーバー上でプロジェクトをコンパイルすると、ノードバージョン17.1.0が高すぎることを示す次のエラーが報告されます。

解決策、参考資料

# 以前にyumを使用してnodeをインストールしたことがある場合は、アンインストールして再インストールする必要があります。インストール手順については、このブログの`source package`を使用したインストール方法を参照してください。# nodejsをアンインストールする
  yum 削除 nodejs npm -y
# /usr/local/lib に入り、すべての node および node_modules フォルダを削除します # /usr/local/include に入り、すべての node および node_modules フォルダを削除します # /usr/local/bin に入り、node 実行可能ファイルを削除します

プロジェクトのコンパイル時または開始時に「権限が不十分です」というエラーメッセージが表示される場合

解決

# 指定されたファイルの権限を設定する chmod 777 /home/web/xxx

プロジェクト実行時のエラー: --fix オプションで修正可能な警告

解決策: プロジェクトの package.json の "lint": "vue-cli-service lint" を eslint --fix --ext .js,.vue src に変更します。

参照する

ケース2

vue-cliはvue3プロジェクトをビルドし、パッケージ化後にdistファイルをtomcatに配置します。

Linux サーバーに Tomcat をインストールする

# docker を使用して tomcat コンテナをプルします docker pull tomcat   
# docker run -d -p 8080:8080 tomcat をバックグラウンドで起動します    
# 起動後、ブラウザはhttp://192.168.0.102:8080/にアクセスし、404を返します。
# 解決:
# ポート 8080 を外部に開きます。firewall-cmd --zone=public --add-port=8080/tcp --permanent  
# 有効にするにはファイアウォールを再起動します。firewall-cmd --reload     
# tomcatコンテナに入る docker exec -it 実行中のコンテナID /bin/bash     
# webapps.dist ディレクトリ内のすべてのファイルを webapps パスにコピーします cp -r webapps.dist/* ./webapps        
# webapps.dist ディレクトリを削除します rm -rf webapps.dist           
# これでブラウザから tomcat ページにアクセスできますが、再起動後も tomcat イメージには 404 が表示されます。現在変更されているコンテナを新しいイメージとして送信する必要があります。# コンテナを停止せずに終了 ctrl + p + q                  
# 実行状態のカスタム コンテナを送信します。tomcat10:10.1 はカスタム イメージ名とバージョン番号です。docker commit -a="Author" -m="Notes" 実行中のコンテナ ID は tomcat10:10.1 です。       
#現在のTomcatコンテナを停止します。dockerは実行中のコンテナIDを停止します。    
# docker rm を実行した後、コンテナ ID を削除します    
# 送信したイメージを起動します docker run -d -p 8080:8080 tomcat10:10.1         
 
# 補足# tomcat イメージを起動すると、エラーが報告されます: ドライバーはエンドポイント quirky_allen で外部接続のプログラミングに失敗しました
# エラーの原因: バックエンド プロジェクトが以前に開始されたときにポート 8080 が占有されていたため、バックエンド プロジェクトを終了する必要があります # テストするには、http://192.168.0.102:8080 にアクセスし、正常に起動したことを示す tomcat ページを確認します

パッケージ化されたプロジェクトをTomcatコンテナに入れる

# 共有フォルダを作成する mkdir -p /home/mydocker/mytomcat8080/data
# コンテナ 8080 を起動します:
  docker 実行 \
  -p 8080:8080 \
  --name my-tomcat8080 \
  -v /home/mydocker/mytomcat8080/data:/usr/local/tomcat/webapps \
  -d \
  トムキャット10:10.1
# コンテナの起動時にエラーが発生しました: docker: 参照形式が無効です。
# エラーの原因: docker コマンドの記述が間違っています。ここでは -v /home/mydocker/mytomcat8080/data:/usr/local/tomcat/webapps \ と記述しました。コロンの後に余分なスペースがあります。# vue プロジェクトのルート ディレクトリを入力し、パッケージ化後に dist フォルダーを生成します。ここでは、ケース 1 のプロジェクト npm install を引き続き使用します。
  npm 実行ビルド
# パッケージ化されたファイルをTomcatにコピーする
  mv dist /home/mydocker/mytomcat8080/data
#Tomcatコンテナを再起動します。docker restart tomcat container id
# テスト、ローカルアクセス http://192.168.0.102:8080/dist/ 

これで、Linux サーバーに Vue プロジェクトをデプロイする方法に関するこの記事は終了です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援して頂ければ幸いです。

以下もご興味があるかもしれません:
  • vue.js パッケージ化プロジェクトの後の空白ページの解決策
  • Vue3.0 エラーの解決策: モジュール 'worker_threads' が見つかりません

<<:  divの適応高さは残りの高さを自動的に埋めます

>>:  Windows で Nginx を使用して https サーバーとリバース プロキシを構成する際の問題

推薦する

MySQL グローバルロックとテーブルレベルロックの具体的な使用法

目次序文グローバルロックテーブルロックテーブルロックメタデータ ロック (MDL ロック)要約する参...

Nginxドメイン名転送のhttpsアクセスの実装

事前に一言:突然、複数のドメイン名のアクセスを https に転送するというタスクを受け取りました。...

MySQL SHOW STATUSステートメントの使用

MySQL のパフォーマンス調整とサービス ステータスの監視を行うには、MySQL の現在の実行状態...

crontab 実行時間とシステム時間の不一致の解決方法

序文LINUX では、定期的なタスクは通常、cron デーモン プロセス [ps -ef | gre...

Windows システムで MySQL が起動しない場合の一般的な解決策

MySQL 起動エラーWindows 10 に MySQL をインストールする前は、net star...

MYSQL パフォーマンス アナライザー EXPLAIN 使用例分析

この記事では、例を使用して MYSQL パフォーマンス アナライザー EXPLAIN の使用方法を説...

HTMLフォーム要素の詳しい解説(パート2)

HTML 入力属性値属性value 属性は、入力フィールドの初期値を指定します。 <フォーム...

MySQL マスタースレーブレプリケーションの原理からインストールと設定までを包括的に解説します。

マスタースレーブレプリケーションがなぜ必要なのでしょうか? 1. 複雑な業務システムでは、SQL 文...

MySQL ストアド プロシージャの原理と使用法の詳細な説明

この記事では、例を使用して、MySQL ストアド プロシージャの原理と使用方法を説明します。ご参考ま...

JSONオブジェクトのキーを置き換える最良の方法

JSON (JavaScript Object Notation、JS Object Notatio...

HTML のキャンバスに基づくスクリーンショットのデモ

冒頭に書いた以前、Renren で JS ベースのスクリーンショット ソリューションについて説明した...

MySQL の指定文字によるマージと分割の例のチュートリアル

序文指定した文字による結合または分割は一般的なシナリオです。MySQL では結合の記述は比較的簡単で...

HTML/CSS におけるフロートの使用例の詳細

1. floatの基本的な使用例1. まず 2 つの div ボックスを作成し、高さ、幅、背景色を設...

Vue Element フロントエンドアプリケーション開発開発環境の準備

目次概要1. 必要なソフトウェア環境を開発する1) VSコードのインストール2) ノード開発環境をイ...

jQuery はテーブルのページング効果を実装します

この記事では、テーブルのページング効果を実現するためのjQueryの具体的なコードを参考までに紹介し...